2

好的,我有一个开发分支,可以远程跟踪并由该项目中的每个人共享。

在本地,我已经从这个分支出来做一些正在进行的工作。但是,与此同时,另一个开发人员已提交并将更改推送到开发分支,我希望这些更改反映在我的本地分支中。 现在是rebase的时候吗?

我不想简单地将我的本地分支提交给开发,然后启动一个新分支,因为我想维护我的提交历史。

据我了解,rebase 将采用 HEAD 的开发分支并在其之上重新应用我的所有提交,但是如果我们对相同的行进行了更改,这是否会覆盖其他开发人员的更改而不会引发冲突?

4

2 回答 2

6

首先,你 fetch,然后你 rebase。这样做不会破坏其他人的更改;您所做的是重做您的变更集,以便它是针对他的更改而不是早期版本的增量。它从日志中消除了不必要和无用的合并消息,并使日志更有意义,如果这确实是应该表示开发历史的方式。

继续并重新设置基准;在这种情况下听起来是正确的做法。太多人只是不假思索地git pull 。

于 2012-10-16T22:06:36.847 回答
5

是的,你是对的,rebase 将占据开发分支的负责人,并重新应用你所有的提交。

不,它不会在不引发冲突的情况下覆盖其他开发人员的更改。如果有冲突的更改,您将需要解决冲突,就像在合并中一样(修复冲突,并使用git add来暂存修复),然后告诉 rebase 继续使用git rebase --continue.

是的,这是进行 rebase 的合适时机。很多人就是这样工作的。如果他们有未推送的本地提交,并且有上游提交,他们会在继续工作或推送到公共 repo 之前重新设置本地提交。

于 2012-10-16T22:06:46.820 回答