git rebase

QuibblerQuibbler 2020-01-18 约 2 分钟 1795 次阅读

git rebase

之前每次自己本地已经有提交了,在pull新的代码下来,就会产生一个空的commit,这是来合并同一个分支不同开发者的提交。--rebase的本意是想让事情的发展看起来很连续和优美,而不是多出很多无用的merge commit 。

1、图解rebase

正常情况下的开发分支提交:

两个开发者各自在本地继续commit C进行开发,并且提交了。


如果一个人提交到了服务器,另一个人本地提交了还没push到远程,进行pull的时候,git会合并这两个基于commit C的提交commit D和commit E,虽然没有任何修改,但是也会产生一个空提交commit F。

git pull


这个时候如果在pull的时候加上--rebase,效果就大不相同,简化了很多。—rebase 并不会产生一个commit提交,而是会将你的E commit附加到D commit的结尾处。在看commit log时,不会多出你所不知道的commit出来。其实此处的F commmit是无意义的,它只是一个merge commit。而且这里面的message里面的branch日后也不存了,这些分支都会被清除掉。

git pull --rebase


代码都有一个前后依赖,只是这个依赖在开发的时候谁先谁后的问题。将后面的提交按顺序依次添加到commit C后面即可。

2、rebase冲突解决

rebase可能会有冲突,这个时候就要先解决冲突,使用git add <file-name>来标记冲突已解决

git add <file-name>

不想合并某些提交

git rebase --skip

冲突解决完之后,结束rebase

git rebase --continue

如果不想rebase了,可以

git rebase --abort

相关推荐

git rebase调整commit提交的顺序
Git

git rebase调整commit提交的顺序

git rebase调整commit之间顺序一连提交了几笔commit,想调整一下顺序,把其中一笔提交置顶拿到最前面来,专门修改这一笔提交。当然如果想修改某一笔提交,可以reset到那笔commit,进行修改,完成之后再把之后的提交cherry-pick回去。git log查看提交记录,每笔提交记录太多,可以让每笔提交仅显示一行查看 --oneline。使用git rebase -i进入编辑,之前

1.4w
git blame:显示文件的每行提交记录信息
Git

git blame:显示文件的每行提交记录信息

git blame:显示文件的每行提交记录信息git blame对文件的每行信息都进行注释。能看到关于该行修改的每一次commit的哈希标签、作者和提交日期。Intellij IDEA在打开文件的行数右键点击Annotate显示文件每一行的记录信息。应该用的就是这个命令实现的功能。

5.5k
Git可视化工具:Sublime Merge
Git

Git可视化工具:Sublime Merge

Git可视化工具:Sublime Merge同事推荐了一个Git 可视化客户端:Sublime Merge ,由知名文本编辑器 Sublime Text 开发商打造。自己平时用的则是最好用的Git GUI工具:SourceTree,也体验了下Sublime Merge,用起来还不错。直接点击下载或购买后,安装即可。功能免费,完整功能无限制使用。但是订阅内容(比如更换主题)付费。Sublime Me

2.8k