在SVN上,直接从文件系统中删除某些内容(而不是使用SVN)会带来许多令人头痛的问题。
在使用git时,我没有发现这是一个问题,但我注意到git有自己的rm实现(git rm)。
rm和git rm有什么区别?
在SVN上,直接从文件系统中删除某些内容(而不是使用SVN)会带来许多令人头痛的问题。
在使用git时,我没有发现这是一个问题,但我注意到git有自己的rm实现(git rm)。
rm和git rm有什么区别?
当前回答
使用rm删除文件本身不是一个问题,但是如果你想提交文件被删除了,你将不得不执行git rm,所以你最好立即这样做。
此外,取决于你的shell,在删除文件后执行git rm,你将不会得到制表符自动完成,所以你必须自己拼写路径,而如果你在文件仍然存在时执行git rm,制表符自动完成将正常工作。
其他回答
如果你只使用rm,你将需要跟随git add <fileRemoved>。Git rm一步完成。
你也可以使用git rm——cached,它将从索引中删除文件(在下次提交时暂存它以便删除),但将副本保留在本地文件系统中。
当用户使用Windows或MacOS等不区分大小写的系统时,git rm在某些情况下比rm更安全。以下是一些例子。
假设你的git仓库在不区分大小写的系统上有一个名为foo.js的提交文件,当你运行git rm foo.js时,你会遇到一个错误。但不是使用rm Foo.js。
然而,如果你最终使用rm而不是git rm。你可以跳过git添加,直接使用以下命令提交更改:
Git提交-a
当使用git rm时,删除将是你下次提交的一部分。因此,如果您想要推动更改,您应该使用git rm
使用rm删除文件本身不是一个问题,但是如果你想提交文件被删除了,你将不得不执行git rm,所以你最好立即这样做。
此外,取决于你的shell,在删除文件后执行git rm,你将不会得到制表符自动完成,所以你必须自己拼写路径,而如果你在文件仍然存在时执行git rm,制表符自动完成将正常工作。