主要记录一些Git使用的一些问题,以备日后查阅
分支管理
分支合并的几种区别
- fast-forward模式
(git merge)
: 如果HEAD在分支的父节点上,这样可以进行”快进方式”,直接移动HEAD到合并分支的头。 - 关闭fast-forward模式
(git merge --no-ff)
: 不使用fast-forward模式,在当前分支自动创建一个commit合入所有分支的修改。 - squash模式
(git merge --squash)
: 把多次分支commit历史压缩生成一个commit,当前分支需要一次额外的commit来提交,移动HEAD。适合把local分支的一系列commit合并到一个正式的commit。因为会产生一个新的commit,所以它不适合用在remote分支之间做merge,否则每次merge回来的时候,又出现一个重复的commit。
git reset
的几种区别
git reset --soft
: 移动HEAD到某一个commit,所有的working tree,index(stage
) file 都不会变化,