簡體   English   中英

從Git中的主分支中刪除提交

[英]Delete commits from the master branch in Git

在進行一些代碼更新之前我忘了創建一個分支,現在我必須恢復到初始提交並刪除初始提交之后的所有提交。 這項工作已被保存在某處,所以我沒有失去它的風險。

我已經使用“git reset --hard {SHA}”重置回到我需要的位置,但是現在我已經完成了在初始提交之后執行的所有提交,等待返回並與我的主副本同步。

我想刪除從2015年6月10日到2015年7月2日的所有提交,因為它們不再需要。 有誰知道如何做到這一點?

在此輸入圖像描述

從任何分支中刪除遠程提交[Master是分支]

如果您向遠程服務器提交某些內容,無論出於何種原因,該內容都不應該在特定分支上提交,您可以使用以下步驟將其刪除

如果分支有您想要保留的更改 - 從步驟1開始

如果您不關心更改並且只想恢復到特定提交 - 從步驟3開始

  1. 執行硬重置並使用以下命令將HEAD重置為要創建分支的提交: git reset --hard {SHA}

    • {SHA}是提交ID
  2. 創建分支並將其發布到服務器(如果跳過此步驟,則可能會丟失工作)

  3. 對要保留的提交執行硬重置為HEAD - git reset --hard {SHA}

    • 這將導致在重置提交后完成的所有提交將作為傳入同步掛起 - 不同步
  4. 要使用以下命令來執行強制推送,請執行強制推送: git push -f

如果沒有其他人使用此repo,請執行git push -f ,服務器的內容將被內容覆蓋。

如果其他人正在使用這個存儲庫(並且你已經提交了你想刪除的提交),他們將需要在提取之后對其結束進行硬重置( git reset --hard origin/master ,假設你是在分支master )。 在這種情況下,我建議使用git revert簡單地撤消提交的效果,而不是試圖從歷史中刪除它們。

暫無
暫無

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

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