我目前正在featurex分支上工作,我们的主分支命名为our-team,自从我开始在featurex上工作以来,分支our-team做了更多的更改。我已经在本地完成了这一操作,以获取our-team的所有最新更改:
featurex
our-team
git checkout our-team git pull
在推送featurex进行合并之前,我希望在本地将our-team分支中的所有更改获取到featurex中,以便确保一切按预期工作。我该怎么做呢?
7nbnzgx91#
在遵循这些说明之前,请记住featurex是合并和推送更改的分支1.转到您的分支featurex
git checkout featurex
1.将our-team分支的变更合并到featurex分支
git merge our-team
或
git cherry-pick {commit-hash}
如果你想合并特定的提交。注意:在将our-team分支合并到featurex分支之后,您可能需要在推送之前修复冲突。
e5nszbig2#
当您在分支featurex上时,可以使用rebase,例如git rebase our-team。它会将分支的起点移动到our-team分支的末尾,合并featurex分支中的所有更改。
git rebase our-team
tcbh2hod3#
git fetch origin our-team
git pull origin our-team
但是首先你应该确定你已经在你想要更新到的分支上了(featurex)。
iezvtpos4#
有两个选项,要么合并,要么重定分支的基础。两者的工作方式不同,但结果相似。accepted answer是一个rebase.这将把所有提交都放到our-team上,然后把所有提交都应用到featurex上,并提示您根据需要合并它们.需要注意的一点是,你会丢失/重写分支历史,这实际上是告诉git你的分支不是从123 abc开始,而是从456 cde开始。这会给其他处理分支的人带来麻烦,一些远程工具也会抱怨。如果你确信你在做什么,这就是--force标志的作用。other posters所建议的是一个merge,它将获取featurex分支,无论它具有什么状态,并尝试将其与our-team的当前状态合并,提示您执行一个big合并提交并在推送到our-team之前修复所有合并错误。不同之处在于,您在之前**应用featurex提交our-team新提交,然后修复差异。您也不重写历史,而是向其添加一个提交,而不是重写之前的提交。这两个选项都是有效的,并且可以协同工作。通常(我的意思是,如果你使用广泛使用的工具和方法,如git-flow)对一个特性分支所做的是将其合并到主分支中,通常通过一个合并请求,并解决一个(或多个)合并提交中出现的所有冲突。重定基是一个有趣的选项,它可以帮助你在最终进行合并之前修复分支,并减轻必须进行一次大合并提交的痛苦。
--force
ztigrdn85#
你就快到了:)剩下的就是
git checkout featurex git merge our-team
这将把我们的团队合并到featurex中。以上假设您已经提交/隐藏了您在featurex中的更改,如果不是这样的话,您需要先这样做。
rkttyhzu6#
如果有人偶然发现这个问题,问自己如何不使用git pull来拉取修改- git pull会先运行git fetch,然后再运行git merge,因为这是fetch + merge两个序列的组合。对于那些只需要从另一个分支拉取修改而不需要这样做的人:
git checkout <branch with changes wanted> git checkout -b <new branch>
6条答案
按热度按时间7nbnzgx91#
在遵循这些说明之前,请记住
featurex
是合并和推送更改的分支1.转到您的分支
featurex
1.将
our-team
分支的变更合并到featurex
分支或
如果你想合并特定的提交。
注意:在将
our-team
分支合并到featurex
分支之后,您可能需要在推送之前修复冲突。e5nszbig2#
当您在分支
featurex
上时,可以使用rebase,例如git rebase our-team
。它会将分支的起点移动到
our-team
分支的末尾,合并featurex
分支中的所有更改。tcbh2hod3#
或
但是首先你应该确定你已经在你想要更新到的分支上了(featurex)。
iezvtpos4#
有两个选项,要么合并,要么重定分支的基础。两者的工作方式不同,但结果相似。
accepted answer是一个rebase.这将把所有提交都放到
our-team
上,然后把所有提交都应用到featurex
上,并提示您根据需要合并它们.需要注意的一点是,你会丢失/重写分支历史,这实际上是告诉git你的分支不是从123 abc开始,而是从456 cde开始。这会给其他处理分支的人带来麻烦,一些远程工具也会抱怨。如果你确信你在做什么,这就是
--force
标志的作用。other posters所建议的是一个merge,它将获取
featurex
分支,无论它具有什么状态,并尝试将其与our-team
的当前状态合并,提示您执行一个big合并提交并在推送到our-team
之前修复所有合并错误。不同之处在于,您在之前**应用featurex
提交our-team
新提交,然后修复差异。您也不重写历史,而是向其添加一个提交,而不是重写之前的提交。这两个选项都是有效的,并且可以协同工作。通常(我的意思是,如果你使用广泛使用的工具和方法,如git-flow)对一个特性分支所做的是将其合并到主分支中,通常通过一个合并请求,并解决一个(或多个)合并提交中出现的所有冲突。
重定基是一个有趣的选项,它可以帮助你在最终进行合并之前修复分支,并减轻必须进行一次大合并提交的痛苦。
ztigrdn85#
你就快到了:)
剩下的就是
这将把我们的团队合并到featurex中。
以上假设您已经提交/隐藏了您在featurex中的更改,如果不是这样的话,您需要先这样做。
rkttyhzu6#
如果有人偶然发现这个问题,问自己如何不使用git pull来拉取修改- git pull会先运行git fetch,然后再运行git merge,因为这是fetch + merge两个序列的组合。对于那些只需要从另一个分支拉取修改而不需要这样做的人: