概念
commit tree : 整个git的记录提交就是对committree添枝加叶的过程,每一个提交都至少有一个父提交
HEAD: 当前提交记录的符号名称(即当前操作是基于该提交记录的),HEAD总是指向最近一次提交记录.HEAD通常指向分支名(如bugFix)
配置
|
|
高级技巧
分离HEAD
分离HEAD就是将HEAD指向一个特定的提交记录ID,而不是分支名
|
|
相对引用
两个操作符 ^ ~
|
|
常用命令
branch
|
|
checkout
git checkout 意思是检出到某次提交,假如是分支的话,就检出到分支当前所在的提交
分支只指向一个commitid,只不过分支指定的commitid在不停的变动
|
|
checkout还可以检出某次提交的指定文件
|
|
merge
|
|
revert/reset
revert会产生一个新的提交,用于远程回滚内容
reset直接将分支指向之前的提交,用于本地回滚内容
|
|
rebase
|
|
调整顺序以及合并commit
填写合并后的commit备注信息
rebase之前:
rebase之后:
cherry-pick
|
|
tag
作用: 对某一commitid设定固定标识
|
|
commit
|
|
log
|
|
fetch
本地有master origin/master两分支,git fetch只下载更新内容,即更新origin/master
pull = fetch + merge
远程分支格式: <remote>/<branch>
push
git push <remote> <place>
remote远端仓库名
place
|
|
stash
|
|
FAQ
1.如何修改已提交日志中的作者信息
答: http://www.jianshu.com/p/b6add8187c06
2.指定目录移除版本控制
|
|