【问题标题】:Git Undo last few pushes after a pull request merge, keeping the mergeGit 撤消拉取请求合并后的最后几次推送,保持合并
【发布时间】:2014-07-24 08:54:16
【问题描述】:

我已将修复提交直接推送给 master,这违反了纯度标准。我们通常会合并拉取请求。

然后我 git 提取所有内容并切换到功能分支 (fb)。
然后在意识到杂质之后,我检查了master,恢复了直接推送,并做了一个push -f origin

所以主人又开始好看了。 但是,由于之前创建了拉取请求,当我将拉取请求合并到 master 时,我再次看到直接完成的错误提交(从下往上读取):

- commit 4 - Merge pull request xyz commit 3 from fb
- commit 3 - Some message  
- commit 2 - Revert "commit 1 - Some message" 
- commit 1 - Some message // (direct commit to master) 
- commit 0 previous - last known good commit 

基本上,我想摆脱介于事物之间的事物,并且不希望事物之间存在:

- commit 4 - Merge pull request xyz commit 3 from fb 
- commit 0 previous - last known good commit 

我该怎么做?

【问题讨论】:

    标签: git github merge


    【解决方案1】:

    你可能想做一个变基:

    git rebase --interactive commit_4^
    

    然后删除有关您不想保留的提交的行。

    请记住,您会丢失它们...好吧,您仍然可以将它们取回(使用 reflog),但它们将不再存在于您的日志历史记录中。

    当其他人使用您的 master 时也不建议这样做,因为它会创建一个分歧的历史。他们将需要根据您将推动力量的新主人来重新定位他们的主人。

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2011-08-22
      • 2016-07-04
      • 2011-01-24
      相关资源
      最近更新 更多