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