【问题标题】:Copy changes from one branch to another将更改从一个分支复制到另一个
【发布时间】:2016-12-05 13:47:39
【问题描述】:

我有一个来自master 的名为BranchA 的分支。我对BranchA 进行了一些更改(我不会合并从BranchAmaster 的更改)。

现在我从master 创建了另一个名为BranchB 的分支。

如何将更改从 BranchA 复制到 BranchB

【问题讨论】:

标签: git


【解决方案1】:
git checkout BranchB
git merge BranchA

如果您不打算将更改合并回主控,这就是全部。通常,将所有更改合并回 master 并从中创建新分支是一个好习惯。

此外,在合并命令之后,您会遇到一些冲突,您必须手动编辑并修复。

确保您位于要将所有更改复制到的分支中。 git merge 将获取您指定的分支并将其与您当前所在的分支合并。

【讨论】:

  • 请注意,这将创建一个可能不是您想要的合并提交。
  • 提问者想要从 BranchA 到 BranchB 的更改,但这个答案是合并从 BranchB 到 BranchA 的更改。请更正!
  • 我使用了 git merge DRG origin/master
  • 如果我删除分支 A 会发生什么?会不会影响B分支的变化?
  • 我认为一旦你在远程存储库上创建了一个分支,你可以在你的本地 git bash/command line 中执行git fetch,然后git checkout "your new branch" 也可以正常工作。这样您的更改只会被复制
【解决方案2】:

您可以将一个分支变基到另一个分支,而不是像其他人建议的那样合并:

git checkout BranchB
git rebase BranchA

这需要BranchB 并将其重新定位到BranchA,实际上看起来BranchB 是从BranchA 分支出来的,而不是master

【讨论】:

  • 如果希望将更改从一个分支合并到另一个分支而不干扰主分支,这是正确的答案
  • merge 和 rebase 有什么区别,为什么 rebase 优于 merge?
【解决方案3】:

这是两步过程

  • git checkout BranchB(目标分支是BranchB,所以我们需要这个分支的head)
  • git merge BranchA(它将BranchB与BranchA合并。这里你已经合并了Branch B中的代码)

如果你想将你的分支代码推送到远程仓库然后做

  • git push origin master(它会将您的 BranchB 代码推送到远程仓库)

【讨论】:

    【解决方案4】:

    BranchA的内容复制到BranchB

    git checkout BranchA
    git pull origin BranchB
    git push -u origin BranchA
    

    【讨论】:

    • 为什么要加-u选项?
    • 我不认为这符合 OP 的要求。
    【解决方案5】:

    对我来说,解决方案是 - 将当前更改存储在分支中,然后切换分支,然后将该存储应用到该分支。

    【讨论】:

      【解决方案6】:

      合并从 BranchA 到 BranchB 的更改。当您在 BranchB 上时,执行 git merge BranchA

      【讨论】:

        【解决方案7】:

        如果你使用的是 tortoise git

        请按照以下步骤操作。

        1. 结帐BranchB
        2. 打开项目文件夹,转到TortoiseGit --> Fetch
        3. 在拉屏中,更改远程分支BranchA并点击确定。
        4. 然后再次右键单击,转到TortoiseGit --> Push

        现在您的更改从 BranchA 移到了 BranchB

        【讨论】:

          【解决方案8】:

          使用 git switch 的简化解决方案

          如果你有 git 2.23 或更高版本,你可以使用 git switch 命令来做同样的事情,因为 git checkout 命令用于很多有时令人困惑的事情


          // This command will switch(go) to BranchB
          // use flag -c if you haven't created this branch yet 
          git switch BranchB 
          
          
          // git merge combines sequences of commits from BranchA to the 
          // current branch (which is BranchB)
          git merge BranchA
          

          【讨论】:

            猜你喜欢
            • 2016-06-15
            • 2020-06-03
            • 2021-11-15
            • 2019-03-17
            • 1970-01-01
            • 2015-01-01
            • 2021-09-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多