【问题标题】:Merge next commit's changes to current commit将下一次提交的更改合并到当前提交
【发布时间】:2012-11-26 23:38:35
【问题描述】:

我正在回溯我的历史,以找出究竟是什么破坏了我的应用程序的 iOS5.1。我已将其跟踪到单个提交,但是该提交有很多文件。

我想git checkout [commit before iOS5 break] 并将所有破坏 iOS5 的提交(即下一次提交)的更改合并到它之前的提交中没有提交更改。这样我就可以简单地还原每个文件,直到找到具有破坏 iOS 5 的更改的文件。

关于如何从提交中获取更改并将它们放在我当前的分支上而不提交它们的任何想法?

谢谢。

【问题讨论】:

    标签: git merge commit revert


    【解决方案1】:

    你必须先创建一个分支:

     git checkout -b fix bcd7c93
     git merge -n 8b53674 # merge without auto-commit
    

    您的解决方案创建:

    • detached head:您根本无法合并,因为您的下一个提交不会被任何分支 HEAD 引用(因此是“分离”部分)
    • duplicate commit:您将无法轻松地将您的“fix”分支合并回 master(或您发现有缺陷提交的当前分支)

    我们的想法是能够修复错误(修改一两个文件)并将其合并回主分支,而无需重复所有您发现有问题的提交的其他文件部分.

    【讨论】:

      【解决方案2】:

      很抱歉回答我自己的问题,但事实证明cherry-pick 有这个选项:

      git checkout -f bcd7c93
      git cherry-pick -n 8b53674
      

      【讨论】:

        猜你喜欢
        • 2014-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        相关资源
        最近更新 更多