git常用命令
把自己常用的git命令记录一下,便于需要时查阅。
用户配置
安装git之后一般要先配置本地账户名和email, 以便以后提交代码。$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
可以用命令列出已有的配置:
$ git config --list
克隆与分支
$ git clone git://github.com/dengruijin/demo.git $ git branch –a #查看所有分支(包括远程和本地的) 新建一个与远程分支同名的本地分支,并建立关联关系 $ git checkout -t origin/branchname $ git branch branch_name #新建分支 $ git checkout branch_name #切换到指定分支上 $ git checkout -b branch_name #新建分支并切换到新分支 $ git branch -d branch_name #删除分支 $ git branch -D branch_name #强制删除分支 $ git merge dev #合并dev分支到当前分支
开发中常用命令
开发一个新功能点时,一般先为该功能点创建一个新的本地分支,开发完成后向dev分支合并,然后删除该分支。假设当前正在分支dev上,先要开发一个计算器功能(cacu) 先创建一个cacu分支并切换到该新分支: $ git checkout -b cacu 然后编写代码实现计算器功能 代码编写完成后提交代码并将代码合并到dev分支: $ git add . $ git commit -m "add a caculator" $ git checkout dev $ git merge --no-ff -m "merge cacu to dev" cacu $ git branch -d cacu #删除分支 查看提交记录: $ git log --graph --pretty=oneline --abbrev-commit
标签(tag)
为当前状态打标签:$ git tag v0.1
有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?方法是找到历史提交的commit id,然后打上就可以了:
$ git tag v0.9 6224937
如果标签打错了,也可以删除:
$ git tag -d v0.9
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。如果要推送某个标签到远程,使用命令:
$ git push origin v1.0 $ git push origin --tags #一次推送所有tag
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9 $ git push origin :refs/tags/v0.9
撤销更改
先明确修改文件后可能有两种状态:- 工作区状态(not staged),即add之前
- 暂存区状态(to be committed),即add之后,commit之前
撤销更改的命令:
checkout --
该命令让文件回到上一状态
(如果当前是暂存区状态则回到工作区状态,如果当前是工作区状态则恢复到未更改状态)$ git checkout -- filename
reset
该命令从暂存区回退到工作区$ git reset HEAD file.txt
若还有从工作区回退到未更改状态,还需要再用`git checkout –
参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000