[英]GIT SVN dcommit after folder rename
我無法找到類似的答案。
情況:
在本地使用GIT(git版本1.7.3.1.msysgit.0)
遠程存儲庫為SVN(不確定版本)
問題:
克隆SVN存儲庫,添加文件夾,將其提交到git和SVN,重命名文件夾(不告訴git),提交給git,無法再提交給SVN。
發行步驟(SVN存儲庫的根目錄main.as中有一個文件)
git add .
) git add .
) git-mv
) git-add .
) 問題 :git-svn dcommit響應:
oldFolder/file.txt: needs update
update-index --refresh: command returned error: 1
我試過的
半成品的那個叫:
svn rm -r oldFolder
但這以SVN中的oldFolder
和newFolder
結尾...而我希望重命名或刪除oldFolder
(在這種情況下,我不介意丟失歷史記錄)。
我需要SVN存儲庫以反映我本地的git master / branch ...
為什么不使用git命令重命名文件?
我使用大型文件結構,並且即時消息用於重構舊代碼的IDE重命名了導致上述情況的多個文件夾和文件。 我無法跟蹤並在刪除的每個文件夾上調用git rm。
在步驟7中,您分階段添加了新文件(newFolder / file.txt),但沒有刪除舊文件。 您需要執行以下操作,而不是上面的步驟6和7:
此時,git將跟蹤重命名(如果有),並為SVN生成正確的提交。
如果您的樹仍在第7步,則可以執行
git reset --soft HEAD~
返回上一個提交並進行刪除。
(僅出於完整性考慮而添加另一個答案)
git add --all
添加所有修改, 包括刪除和重命名。
因此,即使在文件夾重命名的情況下,以下命令序列通常也“有效”:
git add --all
git commit -m "some msg"
git svn dcommit
我們真的不需要git rm -r OLD_FOLDER
(當然,除非我們要微調Git索引定義)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.