Git之merge、rebase、revert、reset的使用

Git

merge:等同于一次commit(E)

git checkout feature  //切换当前分支为feature
git merge master

冲突判断规则:以两个分支最近的共同祖先commit(B)为起点,两个分支对同一个文件修改则会发生冲突。
Git之merge、rebase、revert、reset的使用_第1张图片

注意选用:Squash commits when merge request is accepted 压缩commit后合并,不然C、D也会被commit到master分支中。

rebase:变基:改变当前分支的起点

git checout feature
git rebase master

Git之merge、rebase、revert、reset的使用_第2张图片

Git之merge、rebase、revert、reset的使用_第3张图片

注意:master分支HEAD指针还是指向M

将master的HEAD合并feature的HEAD

git checkout master
git merge feature

然后master的HEAD指针才会指向D'

revert:撤销某次commit

撤销操作会作为一次commit
Git之merge、rebase、revert、reset的使用_第4张图片

git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861
git commit -m "revert add text.txt" 
git push  / push到远程仓库

Git之merge、rebase、revert、reset的使用_第5张图片

reset:回退到指定版本【参考】

  • 回退到上一个版本
$ git reset --参数 HEAD^
  • 回退到指定版本
git  reset --参数 0s52easdfadfafdasdgg

参数

  • soft – 缓存区和工作目录都不会被改变
  • mixed(默认) – 缓存区会回退,但工作目录不受影响
  • hard – 缓存区和工作目录都会回退

注意:回退会将回退部分的commit丢失

你可能感兴趣的:(Git,git,github)