Discuss / Git / git rebase的用法

git rebase的用法

Topic source

n0-cookie

#1 Created at ... [Delete] [Delete and Lock User]

一开始按照教程演示去操作,因为两个目录修改的不是同一文件,git pull 后直接合并了没有冲突,所以git rebase有效果。如果git pull后提示有冲突后,先不管冲突的代码,因为修改后执行rebase还是变回有冲突的代码。先执行git add . 和 git commit -m 'xxx'。在执行git rebase 终端提示:Resolve all conflicts manually, mark them as resolved with "git add/rm <conflicted_files>", then run "git rebase --continue”。这时再手动修改代码解决冲突,执行git add . 再执行 git rebase --continue 就有效果了。这时直接git push 到远程仓库即可

NextLeafOne

#2 Created at ... [Delete] [Delete and Lock User]

为什么“如果git pull后提示有冲突后,修改后执行rebase还是变回有冲突的代码”?

新睿GOAL

#3 Created at ... [Delete] [Delete and Lock User]

赞同确实没有必要一pull下来就手动解决冲突,可以先将冲突文件先add,再commit,再rebase,然后再解决冲突(感觉不太合理,而且rebase以后解决冲突的提交不会进入log)

pull下来的冲突和rebase以后的冲突是不一样的,前一个是个远程版本库对比导致的冲突,后者是和变基以后的版本对比导致的冲突。但是后面解决冲突以后我rebase --continue总之没用,会提示与变基后的版本no changes,然后rebase --skip才能解决,再推送到远程master

老哥这波评论很关键!!!测试了一下如果Pull了以后是同一个文件冲突,先解决冲突再rebase后冲突又恢复了,这一点廖老师没讲,但很重要,这节有点太简略了

沧羽琉璃

#5 Created at ... [Delete] [Delete and Lock User]

可以啊,很关键。

确实如果先解决冲突再rebase的话就会恢复冲突


  • 1

Reply