Git:如何将相同的修改应用到另一个分支?

标签 git

我有一个主分支。这是生产代码。

每个“修补程序”都必须从此分支开始

我有一个开发分支。这是“下一个稳定版本”代码。

每个新功能都必须从此分支开始,并且仅与此分支 merge 。

今天我犯了一个错误:我从开发中分支出来进行修补程序。

现在我确实需要对 master 分支应用相同的修改,但我无法 merge 新的修补程序分支,因为这将发布开发中已经存在的每个新功能。

有没有办法...抱歉说得不好...从开发和修补程序中获取差异并将此修改应用到master?

这可能就是所谓的“创建补丁”吗?

最佳答案

  1. 如果您只处理少量提交,那么您可以cherrypick您的提交到其他分支

    git checkout  master_branch
    

    现在,识别添加到 development_branch 的提交并使用这些新提交的 SHA(提交 ID),只需挑选提交:

    git cherry-pick <SHA>
    
  2. 如果您正在处理大量提交,并且可以不保留原始提交消息,那么您可以遵循差异补丁方法:

     git diff master_branch..development_branch > patch
     git checkout  master_branch
     git apply --check fix_empty_poster.patch  // dry run your patch
     git am --signoff < patch
    

关于Git:如何将相同的修改应用到另一个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400229/

相关文章:

git bash : error: RPC failed; result = 18, HTP 代码 = 200B | 1KiB/s

Git 不跟踪现有文件中的更改

ruby - 使用 ruby​​ 在 git 中 checkout 标签?

git - -split ' ' 在 Powershell 中本地工作在 Azure 管道 Powershell 任务中不起作用

git - 对提交添加微小的更改?

git - 为什么我在发出 "Could not chdir to home directory"后得到 "git pull"日志

ruby-on-rails - docker 下的 .gitignore 文件放在哪里?

git - 我可以通过将符号链接(symbolic link)放入 git 存储库来添加文件吗?

python - 如何使用 PyGithub 将外部协作者添加到单个组织存储库?

windows - 在 Windows 10 命令行中启用 git