[英]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.