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