簡體   English   中英

如何還原對SVN中特定文件的提交?

[英]How to revert a commit made to a particular file in SVN?

盡管已經有很多與svn revert相關的問題,但是我不確定是否曾經問過這個特定問題。 因此,請在關閉/刪除/等之前先閱讀。 這個問題。

在SVN儲存庫中,作為較大提交的一部分,已對文件進行了更改。 這個修訂版名為1100,更改了許多文件的內容,包括有問題的文件,稱為foo.php

隨着時間的流逝,對存儲庫進行了其他一些更改,包括對文件foo.php (例如,在1200、1300、1400和1500版中)。

稍后,很明顯,版本1100中對foo.php文件foo.php的更改是不正確的。 但僅適用於1100版本,僅適用於特定文件foo.php

如何在不影響任何其他文件的情況下輕松地恢復提交1100,並在1200至1500版本中保留對文件foo.php所做的所有中間更改?

在Subversion中還原提交是對文件應用反向補丁 ,然后提交。

假設文件“ foo.php”在修訂版N應用了錯誤的更改。 您可以通過運行類似的命令來查看更改的內容

svn diff -c N ^/path/to/that/foo.php

現在您可以通過運行來獲得反向差異

svn diff -c -N ^/path/to/that/foo.php

所以要還原更改嗎

svn merge -c -N ^/path/to/that/foo.php

當您的工作樹處於明智狀態時,然后提交。

這種合並形式稱為“櫻桃采摘”,讓我們舉出svn help merge的特定部分:

“反向范圍”可用於撤消更改。 例如,當源和目標引用同一分支時,可以“撤消”先前提交的修訂。 在相反的范圍內,'-r N:M'中的N大於M,或者'-c'選項使用負數:'-c -M'等效於'-r M:<M- 1>。 取消這樣的更改也稱為執行“反向合並”。

暫無
暫無

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

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