Git 如何从另一个分支获取更改
我目前正在从事Git 如何从另一个分支获取更改,git,Git,我目前正在从事featurex分支。我们的主分支机构名为分支机构我们的团队。自从我开始从事featurex工作以来,我们的团队对branch进行了更多的更改。在我推动featurex进行合并之前,我想在本地将我们的团队分支机构中的所有更改导入featurex,以确保一切都按预期进行 我已经在本地完成了这项工作,以便从我们的团队获得所有最新的更改 git checkout our-team git pull 我该怎么做呢?例如,当您在分支机构featurex 它将在您的our team分支的末尾
featurex
分支。我们的主分支机构名为分支机构我们的团队。自从我开始从事featurex
工作以来,我们的团队对branch进行了更多的更改。在我推动featurex
进行合并之前,我想在本地将我们的团队
分支机构中的所有更改导入featurex
,以确保一切都按预期进行
我已经在本地完成了这项工作,以便从我们的团队获得所有最新的更改
git checkout our-team
git pull
我该怎么做呢?例如,当您在分支机构featurex
它将在您的our team
分支的末尾移动分支的起点,合并您的featurex
分支中的所有更改
git fetch origin our-team
或
但首先,您应该确保您已经在要更新到的分支上(featurex)。您就快到了:)
剩下的就是
git checkout featurex
git merge our-team
这将把我们的团队合并到featurex中
以上假设您已经在featurex中提交/隐藏了更改,如果不是这样,您需要首先执行此操作。在遵循此说明之前,请记住,featurex
是合并和推送更改的分支
转到主分支机构我们的团队
- git签出我们的团队
从我们的团队
分支机构获取所有新更改
- git pull
转到您的分支机构featurex
- git签出
featurex
将我们团队
分支机构的变更合并到featurex
分支机构
- git merge
我们的团队
- 如果要合并特定的提交,请选择git cherry pick
{commit hash}
通过我们团队的更改推动您的更改
- git推送
注意:可能您必须在将我们的团队
分支合并到featurex
分支后修复冲突,然后才能在谷歌上为其他人发布此帖子。
有两个选项,合并或重定分支的基期。两者的作用方式不同,但结果相似
这是一个。这将获取对我们团队所做的所有提交
,然后将所做的提交应用于featurex
,提示您根据需要合并它们
重定基址的一点警告是,您丢失/重写了分支历史,本质上告诉git您的分支不是从commit 123abc开始的,而是从commit 456cde开始的。这会给在分支上工作的其他人带来问题,一些远程工具会对此抱怨。如果您确实知道自己在做什么,那就是--force
标志的作用
我们建议的是一个。这将使用featurex
分支的任何状态,并尝试将其与our team
的当前状态合并,提示您在推送到our team
之前执行一次大型合并提交并修复所有合并错误。不同之处在于,您在<代码>我们的团队<代码>新提交之前应用了功能x
提交,然后修复了差异。您也不会重写历史,而是向其添加一个commit,而不是重写之前的那些commit
这两个选项都有效,可以同时工作。通常(我的意思是,如果您正在使用广泛使用的工具和方法,如)对功能分支所做的是将其合并到主分支中,通常通过合并请求,并解决一个(或多个)合并提交中出现的所有冲突
重定基址是一个有趣的选项,它可以帮助您在最终进行合并之前修复分支,并减轻必须进行一次大型合并提交的痛苦。我将在将来使用此选项,但是,这次我只做了以下操作。它是否有相同的影响<代码>git签出我们的团队git pull git签出功能X git合并我们的团队
我想强调的是:如果您这样做,并且您没有来自我们的团队
本地的更改,您将需要运行git fetch&&git rebase origin/我们的团队
。您的命令假定存储库已在之前更新。您非常有意且准确地问了这个问题。这使得回答起来更容易,也让noobs(比如我自己)更容易理解。
git checkout featurex
git merge our-team