1. git rm 命令的用法?
看《Pro Git》的时候觉得书里对“移除文件”这一节讲的不甚了了,百度一下发现很多博客对 git rm 命令的用法也是含含糊糊的,自己动手做了几个实验,下面讲讲我的体会:
如上图所示,文件在Git里有四种状态,untracked 表示当前文件尚未被纳入版本管理,对其进行增删查改就和电脑上的普通文件一样,这种文件的删除命令即为 rm filename。而文件一旦纳入Git版本管理了,就需要使用 git rm 命令,此时规则为:
(1)若当前文件在工作目录、暂存区和版本库里是相同的,即上一次提交之后,当前文件未做过任何改动,则直接使用 git rm 命令删除文件再使用 git commit 命令提交删除操作,则工作目录、暂存区和版本库的该文件全部被删除;
(2)否则,必须使用 git rm -f 强制删除工作目录、暂存区和版本库的该文件并使用 git commit 命令提交删除操作,这是以防你做过更改却忘了提交改动。
另外,无论何种情况,若只想删除版本库的该文件,仍想保留工作目录中的本地文件,则使用 git rm --cached 命令并使用 git commit 提交删除操作。