簡體   English   中英

如何在本地取消一次提交中所做的所有更改?

[英]How can I locally cancel all the changes made in a commit?

我有一個特定的目錄,其中的源在特定提交0x0x0x0x0中進行了修改。 在該提交之后,還有其他許多提交都在主服務器上。

我想取消該提交0x0x0x0x0並且此特定目錄中的本地(非上游)具有在進行此提交之前的代碼。 我可以為此運行哪些git命令?

以后的編輯 :我只希望特定的提交取消而不是隨后的更改。 作為代碼,它是一個獨立的模塊,因此對我沒有影響。 另外,我不會使用此本地存儲庫來進一步向上游提交。

如果您想回到引入提交之前,從而有效地刪除其更改以及此后發生的所有更改(在其他提交中),則可以執行以下操作:

  • git checkout -b <newbranchname> commithash~1出一個到舊版本的新分支,因此您不會丟失任何信息,但是可以從舊狀態重新啟動: git checkout -b <newbranchname> commithash~1
  • 將當前分支重置為舊版本,如果沒有其他分支指向它們,則有效地從歷史記錄中刪除所有提交: git reset --hard commithash~1

但是,如果您只想撤消上述提交,同時保留之后所做的所有更改,則可以執行以下操作:

git revert commithash

可以使用以下命令返回到任何提交:

git reset --hard commit_identifier

注意:要獲取提交標識符,請使用git log命令

您還可以使用以下命令重置上一次提交:

git commit --amend

請看下一個鏈接以獲取更多信息:

http://www.kernel.org/pub/software/scm/git/docs/git-reset.html

暫無
暫無

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

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