merge:等同于一次commit (E)
git checkout feature
git merge master
冲突判断规则:以两个分支最近的共同祖先commit (B)为起点,两个分支对同一个文件修改则会发生冲突。
注意选用:Squash commits when merge request is accepted 压缩commit后合并,不然C、D也会被commit到master分支中。
rebase:变基:改变当前分支的起点
git checout feature
git rebase master
注意:master分支HEAD指针还是指向M
将master的HEAD合并feature的HEAD
git checkout master
git merge feature
然后master的HEAD指针才会指向D'
revert:撤销某次commit
撤销操作会作为一次commit
git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861
git commit -m "revert add text.txt"
git push / push到远程仓库
reset:回退到指定版本【参考】
$ git reset --参数 HEAD^
git reset --参数 0s52easdfadfafdasdgg
参数
- soft – 缓存区和工作目录都不会被改变
- mixed(默认) – 缓存区会回退,但工作目录不受影响
- hard – 缓存区和工作目录都会回退
注意:回退会将回退部分的commit 丢失
|