Git 进阶命令

Aug 12, 2015


因为一直使用git作为代码仓库,于是就写了下关于git的一些使用方法


Git Checkout&reset

  • 命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况

    • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态

    • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

  • 用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

    • git reset HEAD readme.txt

    • 然后执行git checkout – readme.txt就可以恢复成仓库的样子


Git push

  • git push -u origin master

  • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支, 还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。


Git stash

  • git stash 存储现场

  • git stash list显示存储现场列表

  • 恢复,有两个办法

    • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除

    • 另一种方式是用git stash pop,恢复的同时把stash内容也删了

    • 你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令: $ git stash apply stashn


Git 分支

  • git branch命令会列出所有分支,当前分支前面会标一个*号

  • 合并分支时,加上–no-ff参数就可以用普通模式合并, 能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。 $ git merge –no-ff -m “merge with no-ff” dev

  • 如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除


Git 打标签

  • 可以用命令git tag查看所有标签: $ git tag

  • 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字: $ git tag -a v0.1 -m “version 0.1 released” 3628164

  • 可以用git show <tagname>查看标签信息

  • 如果标签打错了,也可以删除: $ git tag -d v0.1

  • 如果要推送某个标签到远程,使用命令git push origin <tagname> $ git push origin v1.0

  • 命令git push origin –tags可以推送全部未推送过的本地标签