2017-04-05 275 views
5

我有一個功能分支創建,比如說github上的feature/branch1。 我爲它創建了一個拉取請求並將它合併。 Initial PR Merge CommitGit恢復合併

當達到我們的管道,我們計算有問題,我們得到了它恢復使用的Git上的 Revert按鈕,這就造成我們合併了主,一切都很好了「還原」 PR。 Reverted Merge Commit

幾個星期之後,即得到了合併到主後其他永久居民,我們想通我們會還原最回覆。這一次,我們進入了關閉的Revert PR,並嘗試再次使用Revert按鈕。但是我們收到了此錯誤消息

Sorry, this pull request couldn’t be reverted automatically. 
It may have already been reverted, or the content may have changed since it was merged. 

如何完成此回覆?

我希望擁有的最理想的情況是擁有一個新分支,其中包含還原,所以我可以做出進一步更改並通過PR流程返回。

+0

你用什麼工具恢復?我嚴重懷疑git本身會打印它 – max630

+0

這個'revert'按鈕是github上的一個功能。 – Serendipity

回答

4

你看到的錯誤是github的人工檢查,我個人覺得這是不需要的。您可以在本地恢復恢復:

git fetch origin master 
git checkout origin/master (or reset) 
git revert <REVERT HASH> 
git push origin master 

這應該成功,模數與自恢復以來所做的更改發生衝突。 PS:其實,錯誤可能是因爲衝突。

+0

錯誤確實是由於衝突。儘管github並沒有提供太多的信息。 – Serendipity

0

什麼你可以嘗試是:

  • 復位(git reset --hard old_commit),其PR分支的承諾要恢復到(這是恢復的)
  • 力推(git push --force)分支:是將更新PR

這樣,PR就會再次執行舊提交。

這是一個合併提交。公關已經關閉併合並。

在這種情況下,如果你有取舊PR分支,你可以這樣做:

  • 就可以了git loggit log origin/old_pr_branch
  • 從舊SHA1一個新的分支提交代表內容您現在想

    git checkout -b new_pr_branch old_sha1 
    
  • 推到原點

    混帳推-u起源new_pr_branch

然後,您可以隨時向他的新分支新的PR,用正確的內容。

+0

我需要更多信息。這是一個合併提交。 PR已關閉併合並。我讀過它是不可能重新打開一個關閉的PR。我讀到你的答案錯了嗎? – Serendipity

+0

@Sendndipity我沒有得到公關被關閉。你還能訪問公關分支嗎?這個想法將是基於舊的提交(被恢復的,但現在你想要的)創建一個新的分支,並從該新分支創建一個新的PR。 – VonC

+0

我有權訪問PR分支,是的。然而,我讀到你的答案的方式,似乎更新現有的公關分支 – Serendipity