当使用SVN或Git项目的签出副本的工作,我经常删除或不使用相应的git mv
,svn rename
,git rm
,或svn delete
命令重命名文件,所以这些变化不会适当地反映在我将我的版本提交回存储库。在事实发生之后,是否有一种解决方法可以解决这个问题,除了在我的最后更加谨慎?删除和重命名文件
删除和重命名文件
回答
对于Git的,看看git add -A
。这将添加新的或已更改的所有内容,以及删除不存在的文件。不过,它可能还会添加您不想添加的文件,因此请小心。 由于Git并不跟踪重命名明确,这已经足够了(用git commit
在一起)。
对于Subversion,您可以执行类似svn add --force .
的操作,然后执行svn commit
等效操作,但这不会正确地跟踪重命名/移动操作。我认为找出哪些文件被重命名(也可能更改)以及哪些文件被简单地添加/删除并不是微不足道的。
Git中,如果你已删除的文件,你可以使用git commit -a
并承诺将反映删除,而不必做git rm
像TortoiseSVN和TortoiseGit这样的Gui工具对于这样的事情很聪明,而且在使用这些工具时通常不需要进行显式删除和重命名。
感谢 - 我用'git的承诺-a'但似乎并没有删除我的旧文件... – hatmatrix 2011-05-09 09:59:56
使用git,git mv
只是一个方便的别名,相当于在旧文件上移动文件并对git rm
执行操作。如果你省略了这个,结果是你删除了原始文件,git会注意到,并添加了一个新文件,git将忽略,因为你没有调用git add
。 git rm
与此类似。
这是混帐的缺点之一,因为它不强迫你犯在你的仓库其他版本控制系统做的每一个变化。但是,可以使用git status
命令轻松管理它,并仔细使用.gitignore文件。只要你保持清洁或适当忽视树木,你可以快速浏览一下你是否有任何未跟踪的文件。
至于事后修正此,只是阶段和提交相应的变化,在这种情况下将未跟踪文件。
- 1. 文件重命名/删除
- 2. 文件删除和重命名问题
- 3. 使用断开链接删除和重命名文件()和重命名()
- 4. 在WINAPI中删除,复制,重命名文件和目录..?
- 5. 使用HDF5库重命名和删除HDF5文件中的组
- 6. Java中的文件删除和重命名
- 7. PHP下载,使用按钮删除和重命名文件
- 8. 在Servlet中删除和重命名多个文件的问题
- 9. ESP8266 SPIFFS复制文件内容,删除和重命名
- 10. 如何删除和重命名Android中的文件?
- 11. 重命名删除权限被阻止的文件夹/文件
- 12. 红宝石重命名文件删除文件
- 13. 重命名后无法删除文件(文件打开)
- 14. 文件名重命名 - 子字符串日期删除
- 15. 删除“!”从“[”和“]”文件名
- 16. 用于排序和重命名文件的Python脚本 - 删除重复项
- 17. Visual Studio 2017慢文件操作(删除,重命名,创建)
- 18. 用grunt_copy重命名后删除原始文件
- 19. Python重命名ftp上传文件删除
- 20. 监视Outlook文件夹重命名/添加/删除与外接
- 21. 无法重命名或删除文件实例
- 22. 递归重命名文件并删除一个字符
- 23. TFS:无法重命名为删除文件
- 24. 删除每n个文件,然后重命名序列
- 25. Qt加载删除/重命名文件与Windows 10
- 26. 在Java编程中删除并重命名文件
- 27. 重命名文件删除时间在PowerShell中
- 28. For循环删除文件而不是重命名
- 29. 使用Lion上的FSEvents跟踪文件重命名/删除
- 30. 为什么删除前需要将文件重命名30次?
不幸的是,它会增加不必要的文件,但我想混帐不能聪明(还)。 – hatmatrix 2011-05-09 10:00:58
如果你有一些匹配这些不需要的文件的模式,把它们放在'.gitignore'(或'.git/info/exclude')中,它们不会自动添加。 – 2011-05-09 11:11:47