好吧,我有一个开发分支,可以远程跟踪并由该项目的每个人共享。
在本地,我已经分支了这个以做一些正在进行的工作。但是,与此同时,另一位开发人员已将更改提交并推送到我希望在本地分支中反映的开发分支。 是时候变基了吗?
我不想简单地将我的本地分支提交到开发,然后启动一个新的分支,因为我想维护我的提交历史。
据我了解,rebase将把HEAD的开发分支重新应用到我的所有提交之上,但是如果我们对相同的行进行了更改,它会覆盖其他开发人员的更改而不会产生冲突?
答案 0 :(得分:5)
首先,你获取,然后你改变。这样做不会破坏其他人的变化;你做的是重做你的变更集,以便它是一个反对他的变化而不是早期版本的增量。它消除了日志中不必要和无用的合并消息,使日志更有意义如果这确实是应该如何表示开发历史。
继续坚持下去;在这种情况下,听起来像是正确的事情。太多人只是 git pull 而没有想到。
答案 1 :(得分:4)
是的,你是正确的,rebase将担任开发分支的负责人,并重新应用你的所有提交。
不,它不会在不引发冲突的情况下覆盖其他开发人员的更改。如果存在冲突的更改,则需要解决冲突,就像在合并中一样(修复冲突,并使用git add
暂存修复),然后告诉rebase继续使用git rebase --continue
是的,这是进行变基的适当时机。这就是很多人的工作方式;如果他们没有删除本地提交,并且有上游提交,他们会在继续工作或推送到公共回购之前重新设置他们的本地提交。