簡體   English   中英

通過命令行撤消SVN 1.6錯誤

[英]Undo SVN 1.6 mistake via command line

我正在將Mac OS X終端用於SVN。 關於SVN和命令行,我非常業余。 我通常只是前端代碼猴子。

我不小心以某種方式在嘗試檢出該分支的同時,將項目的某些分支提交到該項目的另一個分支中。 是的,我很糟糕。

遠程存儲庫:

MyProjectBranch
    BranchNeedsToNotBeHere
    BranchNeedsToNotBeHere2
    BranchNeedsToNotBeHere3
    expectedDirectoryStillHere1
    expectedDirectoryStillHere2
    expectedDirectoryStillHere3

最后,以所需的版本更正本地存儲庫:

MyProjectBranch
    expectedDirectoryStillHere1
    expectedDirectoryStillHere2
    expectedDirectoryStillHere3

我如何在不使自己顯得無能的情況下消除這種煩惱? 似乎可以使用一個簡單的“還原”命令,但是我發現的只是“反向合並”-如果我正確地做到了這一點,則根本沒有刪除無關的目錄和預期的目錄不是正確的版本,而是較舊的版本。 因此,我什至可能沒有做到這一點。

對於任何能救我的人來說,都非常值得贊揚!

通過執行以下操作還原提交:

svn merge -c -$REV

其中$ REV是您引入目錄的更改。 如果您在一系列修訂中都這樣做,則對每個修訂重復此操作。 請注意修訂版本號前面的破折號,它表示該修訂版本已逆轉。 如果要刪除的修訂范圍是路徑上唯一提交的內容,則可以使用-r $YOUNGEST:$OLDEST而不是-r $YOUNGEST:$OLDEST -c -$REV來指定范圍,然后執行一次反向合並。

如果只限於添加新文件/目錄,則可以在路徑上使用svn rm並將其刪除。

首先,我認為我要說的不是正確的做法。 它甚至可能被否決。 轉到svn remote並刪除您認為不應該存在的分支。 更新本地,您應該完成。 在執行此操作之前,請先進行備份。

另外,我不確定為什么要先在本地刪除多余的分支,然后再提交才能為您解決。 你嘗試過嗎?

暫無
暫無

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

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