簡體   English   中英

如何撤消不在HEAD的SVN提交

[英]How to undo an svn commit that's not at HEAD

我的提交還沒到頭,盡管后來的提交並沒有觸及上面的任何文件。

有沒有辦法從中繼刪除此提交?

謝謝,

根據從歷史中刪除修訂的重要性,有幾種基本方法:

  • 通過svn merge撤消更改,提交更改並繼續
  • 轉儲存儲庫,並通過某些svn轉儲工具編輯更改集。 svndumpfilter或SvnDumpTool可能起作用。 需要付出更多的努力,但是如果提交的數據屬於“讀取前刻錄”類型,例如密碼,“最高機密”文件等,則可能值得。
  • 等待svn obliterate 不要屏住呼吸

您可以撤消Subversion中的更改-通過使用svn merge即使不是最重要的更改。

假設您的版本為100,但意識到版本94的更改存在問題:

$ svn up  # Make sure your working directory is up to date
$ svn st  # Make sure there are no pending changes.
$ svn merge -c -94 .  # Removes changes done in Revision #94.

注意負數94。 -c表示更改。 版本號為負,與您說的相同:

$ svn merge -r 94;93 .

請注意,如果您不刪除最后一個更改,則可能會發生沖突(您在版本96中進行了更改,在版本94中也進行了更改)。 使用svn merge進行任何操作時,始終建議您擁有一個干凈的工作目錄。

您還可以使用--dry-run參數在實際執行反向合並之前查看要更改的內容。 這將幫助您發現可能的沖突,並確保要更改的文件是您認為需要更改的文件。

暫無
暫無

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

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