Git:无法移除"还原'承诺

时间:2015-06-17 21:45:56

标签: git merge continuous-integration git-flow revert

我们正在使用git工作流程和一个用于集成的开发分支和用于各个功能的功能分支。

  1. 通过以下方式创建了一个功能分支:

    git fetch
    git checkout -b new-branch origin/develop
    
  2. (开发是我们的工作集成分支)

    1. 在新分支上工作,当准备好创建拉回请求回到开发并在github上创建一个pull请求并合并。

      没有合并冲突,现在我们的功能分支仍处于开发

    2. 不得不做另一个拉动请求调整代码

    3. 在sprint结束时,我们通过github将new-branch恢复为develop - 使用pull请求页面上的revert按钮。

    4. 当我们尝试恢复第二个拉取请求时,github无法执行此操作,因此我们通过以下方式手动恢复此提交:

      git checkout develop
      git fetch
      git merge --ff-only origin/develop
      git revert -m 1 commit ##the commit that was the pull request
      git push
      
    5. 当我们完成上述步骤时,我们(意外地)发生了合并冲突;我们解决了;而现在我!新分支不再开发,我们的提交已经恢复。

    6. 现在我们已经发布了,我们希望继续处理new-branch并删除revert,正如我们所理解的那样,有两种不同的方法可以实现。

      1. 还原删除了拉取请求的提交
      2. 在我们分叉新分支并运行

        之前找出提交
        git rebase -i --no-ff commit
        
    7. 这些允许我们将新分支重新引入我们的开发分支。

1 个答案:

答案 0 :(得分:0)

如果您在发布分支上拥有所需的所有代码,则应该:

  • 如果它具有您需要的所有更改并在该分支上工作的那个分支

  • 合并它以开发然后分支开发如果有想要保留的开发代码

然后你可以删除旧分支

我想要删除恢复的提交,不要。通常,删除或更改git中的提交历史记录被认为是一个坏主意https://sethrobertson.github.io/GitBestPractices/#pubonce

最后Git Choose Your Own Adventure是一个用于修复git follies的惊人资源......