参考 git奇迹淫巧
3 提交commit
一般命令为 git commit -m “first commit”
3.1 进入编辑器
git commit
执行后进入vim编辑器,编写commit 内容
3.2 跳过暂存,直接提交
git commit -a -m “first commit” / git commit -am “first commit”
该命令将会将工作区已跟踪的文件直接提交
3.3 修改最近一次的commit( git commit —amend)
提交完了才发现提交信息写错了。 此时,可以运行带有 --amend
选项的提交命令修改提交
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
3.4 修改某一次的commit( git rebase -i baseCommit)
这是一个变基操作,所以baseCommit就是你要修改某一个commit的上一级(父级)commit。
执行 git rebase -i 59712c1
修改message信息,并:wq!
查看log
对比下面的修改前的log,发现除了message修改了,base-commit后面的所有commit id都变化了,因为这是个变基操作,id肯定会变
3.5 合并连续的commit(git rebase -i baseCommit)
有时候往master分支合并 或者 想精简美化commit记录,需要把多个commit合并成一个,这时候还是用到git reabse操作。基本操作同3.4,只是一点不同,用s选项
结果
3.6 合并不连续的commit(git rebase -i baseCommit)
这个操作可能会引起合并冲突,要小心解决,最后看结果,合并到一个commit了
4 查看提交历史log
链接
一般命令为 git log
4.1 显示每次提交的内容差异git log -p
你也可以加上 -2
来仅显示最近两次提交
4.2 git log —pretty
指定使用不同于默认格式的方式展示提交历史oneline
将每个提交放在一行显示
$ git log --pretty=oneline
ca82a6dff817ec66f44342007202690a93763949 changed the version number
085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test
a11bef06a3f659402fe7563abf99ad00de2209e6 first commit
其他还有short
,full
和 fuller,format等
其实直接 git log —oneline 也可以
4.3 git log —pretty —graph 查看分支合并
当 oneline 或 format 与另一个 log
选项 --graph
结合使用时尤其有用。 这个选项添加了一些ASCII字符串来形象地展示你的分支、合并历史:
git log —pretty=oneline —graph
* 6804438525d006df09814b7303e2cf0fc2c01fb3 (HEAD -> dev1) Merge branch 'master' into dev1
|\
| * 94af1e24a7768c3b66cb430f50f8e29dd9480bfb (master) 修改 aaaa.html
* | 7033f8129759879717c3618cbe62b3e372bce247 修改c.js 2
* | ca25eb35960afd7f7eaa346bf8570df1e148897e 修改c.js
* | abf6b40b34bded0f37c9556858b5b8046913b437 add c.js
* | 5d3d0fa6e84b43a54d4779c510ec5d3403ba78e2 create branch dev1
|/
* 4165f47f3ace5ae75ddc24042238364e9f64e12a (origin/master, origin/HEAD, origin) add gg,html
* 40b075465457f325a72cada8935ac12b524eac38 xxxxx
* 0ca5b3d004284ae8d60f5ce01c2fa0d293b07df8 Update aaaaa.html
* 3b409c036f62a8c268138e3450dcb7cdaff7afae Create README.md
* 0e0ed4f8b2b136076e06cfafb7ec2e72d07047cb add aaaaa.html
4.4 查看最近几次提交
git log -n2 // 最近两次
5 撤销
5.2 取消暂存的文件 (暂存区->工作区)
git reset HEAD
git reset HEAD —file
5.3 撤消对文件的修改 (工作区)
git checkout —file