如何使用rebase

时间:2017-02-02 09:03:18

标签: git version-control rebase

有一个名为develop的主分支。分支(feature_branch_1)起源于开发分支。我正在feature_branch_1进行更改。假设我将在feature_branch_1工作两周。 每天我都需要feature_branch_1同步开发分支更改(develop分支将进行更改 其他人,我需要进行这些更改,以便我的feature_branch_1不会偏离develop分支,我也知道develop分支中发生了什么)

我尝试将git rebase develop用于此目的,如下所示,

git checkout develop
git pull
git checkout feature_branch_1
git rebase develop

起初很不错,但是当我对feature_branch_1 进行更多更改时,将引入更多冲突。 (它说我自己的提交相互冲突,它的可能意味着我的两个提交修改了同一个文件中的同一行,而Git不知道要应用哪个更改< / strong>)解决这个问题非常困难和耗时。

我是否使用rebase 做错了?如何让feature_branch_1始终与develop分支同步(最少需要与过去24小时内的最新更改同步)

注意: 我还检查了其他相关的SO问题。根本没有使用rebase,我们可以做到这一点。如下,

git checkout develop
git pull
git checkout feature_branch_1
git merge develop

之后,

git push origin/feature_branch_1

我每天都可以执行此操作,并使feature_branch_1develop同步。 有没有办法在没有我自己的提交相互冲突的情况下使用rebase执行此操作?

1 个答案:

答案 0 :(得分:0)

是的,你是对的。冲突文件数量取决于相关提交的更改。如果developfeature_branch_1都更改了许多文件,则可能会有更多冲突。 还有另一种方法可以做同样的事情:

git checkout feature_branch_1
git pull origin develop --rebase

这将使您的feature_branch_1基于最新的develop分支。

如果您的feature_branch_1在上次与develop分支同步后有多次提交,则可以在此时间同步之前压缩这些提交,以便提交历史记录更清晰。

要使用rebase或merge,它取决于您是否需要为主项目做出贡献。 rebase只是让你在最新的开发分支上工作,合并可以使我们的工作成为主项目的一部分。