git入门

学完git总算可以正规化这个博客的日常操作了。
学习素材是《git community》和实验楼的Git实战教程。
比起看一看还是自己手打一遍舒服。

获得Git仓库

法1.从网上获取。

git clone +仓库地址

法2.创建并初始化本地仓库。

mkdir project     //新建文件夹
cd project
git init

Git的基本流程

  1. 创建或修改文件。
  2. 使用git add命令 添加新创建或者修改的文件到本地的缓存区。(Index)
  3. 如果是删除,则使用git rm命令将已删除文件的信息加到缓存区。
  4. 查看项目状况

     git diff --cached     //查看会被提交的文件
     git diff              //查看已经修改的但是未被加入索引的文件(q退出)
     git status            //查看当前项目的状况
    
  5. 使用git commit 命令提交到本地代码库。

     git commit -m "这是提交"
     git commit -a -m "这是把没有提交到缓存的区的修改一起提交的操作"
    
  6. 使用git push命令将本地代码库同步到远端代码库。

分支与合并

git branch branchname     //创建分支
git branch   //查看当前分支及仓库中所有分支
git checkout branchname     //切换分支
git merge -m 'dddd' branchname      //将分支与master合并
//如有冲突需要手动解决,add了再commit
git branch -d branchname    //删去已合并的分支
git branch -D crazy-idea    //强制删除分支
git reset --hard HEAD     //撤销合并
git reset --hard ORIG_HEAD    //撤销已经提交的合并
git diff master..branchname     //比较两个版本之间的差异
git diff branchname        //当前工作目录和其他分支的差别
//也可加入路径限定符,来比较某一文件或者目录
git pull 地址 branchname  //把分支拉下来(包括两个步骤,从远程分支抓取修改内容再合并进当前分支)
git fetch branchname      //抓取下来但是不修改合并进当前分支
git remote add nickname 地址      //定义远程分支的缩写
git push 地址       //将其push到公共仓库

Git日志

git log     //显示所有的提交
git log --stat      //查看详细日志
git log --pretty=short    //还可以选择email,medium,full,fuller,raw,oneline
//日志排序的各种参数
--topo-order
--date-order    
--reverse     //逆序

Git标签

//轻量级标签
git tag tagname commitID (前八位即可)

中级技能

//忽略某些文件
添加一个.gitignore的文件,在里面写入需要忽略文件的名字,可以使用通配符*,以及取反符号!
//储藏
git stash "work in progress"    //会保存本地修改到储藏中,并还原到分支上次提交时的状态
git stash apply       //修复完bug后恢复到以前的工作状态
git stash list    //查看储藏队列(队列里的都可以apply
git stash clear     //清空储藏队列
//撤销
git reset --hard HEAR     //让工作目录回到上次提交时的状态
git checkout --hello.rb     //把hello.rb从HEAD中签出,并将其恢复成未修改时的样子
//修复已提交文件中的错误————创建一个新的提交,在新的提交里撤销老的提交,所作的修改
git revert HEAD       //撤销老的提交然后留下完整的老提交前的版本
git revert HEAD^        //上上次的
//维护
git gc      //git历史信息的压缩

高级技能

//补丁
git format-patch origin       //包含当前分支与origin/HEAD之间的差异内容

删除某文件夹

git remote add origin 地址
git rm -r --cached "文件夹名称"
git commit -m'删除'
git push -u origin master