【问题标题】:How to get changes from another branch如何从另一个分支获取更改
【发布时间】:2021-06-21 16:01:01
【问题描述】:

我目前在featurex 分支上工作。我们的主分支被命名为our-team。自从我开始处理featurex 以来,已经对分支our-team 进行了更多更改。

我已在本地完成此操作以获取来自 our-team 的所有最新更改:

git checkout our-team
git pull

在我推送featurex 进行合并之前,我希望在本地将所有更改从our-team 分支获取到featurex,以便我可以确保一切都按预期工作。

我该怎么做?

【问题讨论】:

    标签: git


    【解决方案1】:

    当您在您的分支featurex 上时,您可以使用rebase,例如git rebase our-team

    它将在our-team 分支的末尾移动分支的起点,合并featurex 分支中的所有更改。

    【讨论】:

    • 我以后会用这个,不过,这一次我只是做了以下..它有同样的影响吗? git checkout our-team git pull git checkout featurex git merge our-team
    • 我想强调:如果您这样做并且您没有在本地拥有来自our-team 的更改,则您需要运行git fetch && git rebase origin/our-team。您的命令假定存储库之前已更新。
    • 不要在公共分支上使用变基。这是有史以来最糟糕的建议。
    【解决方案2】:

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

    1. 去你的分行featurex

      git checkout featurex
      
    2. our-team分支的变化合并到featurex分支中

      git merge our-team
      

      git cherry-pick {commit-hash}
      

      如果你想合并特定的提交。

    注意:在将 our-team 分支合并到 featurex 分支后,您可能必须在推送之前修复冲突。

    【讨论】:

      【解决方案3】:

      对于在谷歌上看到这篇文章的其他人。 有 2 个选项,mergingrebase 您的分支。两者的工作方式不同,但结果相似。

      accepted answerrebase。这会将完成的所有提交带到our-team然后将完成的提交应用到featurex,提示您根据需要合并它们。

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

      other posters 建议的是 merge。这将采用featurex 分支,无论其状态如何,并尝试将其与our-team 的当前状态合并,提示您在推送到our-team 之前执行一个大合并提交并修复所有合并错误.不同之处在于您将featurex 提交 our-team 新提交之前应用,然后修复差异。您也不会重写历史记录,而是向其中添加一个提交,而不是重写之前的提交。

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

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

      【讨论】:

        【解决方案4】:

        你快到了:)

        剩下的就是

        git checkout featurex
        git merge our-team
        

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

        以上假设您已经在 featurex 中提交/隐藏了您的更改,如果不是这种情况,您需要先执行此操作。

        【讨论】:

          【解决方案5】:
          git fetch origin our-team
          

          git pull origin our-team
          

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

          【讨论】:

            猜你喜欢
            • 2011-03-08
            • 2019-11-17
            • 1970-01-01
            • 2015-01-01
            • 1970-01-01
            • 2014-02-28
            • 1970-01-01
            • 2018-06-21
            • 1970-01-01
            相关资源
            最近更新 更多