簡體   English   中英

在不更改本地存儲庫的情況下撤消遠程分支上的git push?

[英]Undo a git push on the remote branch without changing local repository?

我團隊中的開發人員將更改提交到錯誤的遠程存儲庫。 我想刪除他推送到遠程存儲庫上的此存儲庫的內容。 我不想在當地改變任何東西。

因此我怎么能:

  1. 列出遠程存儲庫分支上的提交,以便我可以看到需要刪除哪些已推送的提交。

  2. 刪除遠程存儲庫分支上的每個提交,以便我可以在推送更改之前返回到提交。

我不確定“刪除”是否是正確的進程,或者它是否意味着“恢復”但最終我需要遠程存儲庫分支回到他推動他的更改之前的位置。

標記該分支的最后位置

git tag original-master origin/master

檢查從服務器獲得的內容:

git fetch

git log --all --graph

要么

gitk --all

如果你的標簽仍然有意義,那就是遠程分支應該在哪里,強制推動它:

git push -f origin original-master:master

如果是另一次提交,請將該提交作為主提交:

git push -f origin <some SHA1>:master

清理:

git tag -d original-master

自修復以來更新跟蹤分支:

git fetch

這假定“主”是有問題的分支。 如果是另一個,請將“master”替換為正確的分支名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM