我目前在feature分支工作。我们的主分支被命名为Our -team。自从我开始在featurex工作以来,我们的团队已经做出了更多的改变。

我在本地做了这些,以获得我们团队的所有最新更改:

git checkout our-team
git pull

在我推动featurex进行合并之前,我想在本地得到我们团队分支的所有更改到featurex中,这样我就可以确保一切都按预期工作。

我该怎么做呢?


当前回答

你可以使用rebase,例如,git rebase我们的团队当你在你的分支特性。

它将把分支的起点移动到我们团队分支的末尾,合并你的featurex分支中的所有更改。

其他回答

你可以使用rebase,例如,git rebase我们的团队当你在你的分支特性。

它将把分支的起点移动到我们团队分支的末尾,合并你的featurex分支中的所有更改。

git fetch origin our-team

or

git pull origin our-team

但是首先你应该确保你已经在你想要更新到的分支(featurex)上。

在遵循这些说明之前,请记住featurex是合并和推送更改的分支

去你的分支feature Git签出特性 将我们团队分支的变更合并到feature分支中 Git合并我们的团队 或 Git cherry-pick {commit-hash} 如果您想合并特定的提交。

注意:在推送之前,你可能必须在将我们的团队分支合并到featurex分支后修复冲突。

有两种选择,合并或重设分支。两者工作方式不同,但结果相似。

公认的答案是rebase。这将把所有提交给我们的团队,然后将提交应用到featurex,提示您根据需要合并它们。

重基的一个小警告是你会丢失/重写你的分支历史,本质上告诉git你的分支不是在commit 123abc开始的,而是在commit 456cde开始的。这将给在分支上工作的其他人带来问题,并且一些远程工具会抱怨它。如果你确定你在做什么,这就是——force标志的作用。

What other posters are suggesting is a merge. This will take the featurex branch, with whatever state it has and try to merge it with the current state of our-team, prompting you to do one, big, merge commit and fix all the merge errors before pushing to our-team. The difference is that you are applying your featurex commits before the our-team new commits and then fixing the differences. You also do not rewrite history, instead adding one commit to it instead of rewriting those that came before.

这两个选项都是有效的,并且可以协同工作。通常(我的意思是,如果您正在使用广泛的工具和方法,如git-flow)为一个特性分支所做的是将其合并到主分支中,通常通过一个合并请求,并解决在一次(或多次)合并提交中出现的所有冲突。

重基是一个有趣的选择,它可以帮助您在最终进行合并之前修复分支,并减轻必须进行一次大型合并提交的痛苦。

你快成功了:)

剩下的就是

git checkout featurex
git merge our-team

这将把我们的团队合并到featurex中。

以上假设您已经在featurex中提交/存储了您的更改,如果情况并非如此,您将需要首先这样做。