删除和重命名文件

时间:2011-05-08 01:33:28

标签: svn git revision

使用SVN或Git项目的签出副本时,我经常删除或重命名文件,而不使用相应的git mvsvn renamegit rm或{{1命令,因此当我将我的版本提交回存储库时,这些更改没有得到适当的反映。除了在我的结尾更加小心之外,有没有解决方法来解决这个问题?

4 个答案:

答案 0 :(得分:4)

对于Git,请看git add -A。这将添加新的或更改的所有内容,以及删除不再存在的文件。它可能还会添加你不想添加的文件,所以在这里要小心。 由于git没有明确跟踪重命名,因此这应该足够了(与git commit一起)。

对于Subversion,您可以执行类似svn add --force .后跟svn commit的操作来执行等效操作,但这不会跟踪重命名/移动。我认为找出哪些文件被重命名(也可能更改)以及简单地添加/删除哪些文件并非易事。

答案 1 :(得分:2)

使用git,git mv只是一个方便的别名,相当于移动文件并在旧文件上执行git rm。如果省略使用它,结果就是你删除了git会注意到的原始文件,并添加了一个新文件,git将忽略该文件,因为你没有调用git addgit rm类似。

这是git的缺点之一,因为它不会像其他版本控制系统那样强制您提交存储库中的每个更改。但是,可以使用git status命令轻松管理它并小心使用.gitignore文件。只要你保持你的树清洁,或被适当忽略,你就可以快速看出你是否有任何你错过的未跟踪文件。

至于事后修复此问题,只需暂存并提交相应的更改,在这种情况下将是未跟踪的文件。

答案 2 :(得分:1)

对于git,删除文件后,请使用:

git rm --cached myfile

答案 3 :(得分:1)

在git中,如果您删除了文件,则可以使用git commit -a,并且提交将反映删除,而无需执行git rm

像TortoiseSVN和TortoiseGit这样的Gui工具对这些事情非常聪明,在使用这些工具时,您通常不必进行显式删除和重命名。

相关问题