git pull 与 git pull --rebase的区别与使用
git pull 与 git pull --rebase的区别与使用
- 1. 优化commit很乱的记录
- 1.1 解决问题
- 例子
- 1.2 idea 中更新代码
1. 优化commit很乱的记录
课程:优化Commit记录
之前遇到过这个问题,已知没当回事,现在想做出改变,正好B站有个视频,就跟着学习一下。
首先git pull
命令是git fetch+git merge,当你和你的同时同时在操作一个分支,并且修改的代码也有交集,那么你push的时候就会被reject然后你执行git pull,但是由于你提交的代码和你的同事代码存在相同的祖先,那就git pull 就会自动生成一个commit记录并且会创建一个merge记录(如下图)。
而我们要做的就是把自己的提交挂在同事的提交之后,这时我们要做的就是使用git pull --rebase
命令完成这次操作。 git pull --rebase 就是 git fetch + git rebase
1.1 解决问题
首先,一个账户提交了代码。
然后我修改了代码,但是我在提交前我需要进行pull,这时候我们就用git pull --rebase
如果有冲突就需要解决冲突,此时current代表的是远端 incomming代表的是本地代码
最后我们就用 git rebase --contine
保持解决冲突的状态(这时候不能用git commit)
设置git pull
默认的操作就是git pull --rebase
⇒ git config pull.rebase true
例子
远程新建一个a.js文件并提交。然后本地也新建a.js文件然后再相同行写了代码
这里执行 git pull --rebase
解决冲突后再执行 git rebase–continue,最后在push
执行 git log --graph记录,看到不会有merge的记录
1.2 idea 中更新代码