什么时候应该使用rm,git rm,git rm
我正在学习git,但我很困惑不同的分段和提交文件的方式。 为了包裹我的头,我使用了一个目录隐喻:工作目录,登台目录,提交目录。
rm
从我的工作目录中的文件,它仅仅只是从我的工作目录中删除。 它是否正确? git rm
一个文件,它会从所有三个目录中删除它。 正确? git rm --cached
一个文件,它会从我的staged和commit目录中删除文件,但将其保留在我的工作目录中? git add .
,那么git status
显示已添加,删除和更新的分阶段文件。 我犯了什么后会发生什么? 删除的文件是否从提交目录中删除? 如果我稍后回滚该提交,那么这些被删除的文件会重新出现吗? 任何帮助更好地理解这些概念将不胜感激 - 谢谢!
调整你的暂存区(也被称为索引或缓存)和理解--cached
选项。 git rm
的文档声明
--cached
使用此选项可以取消仅从索引中删除路径的情况。 工作树文件,无论是否修改,都将被单独保留。
运行你的列表给出
rm file
- 只从工作目录中删除文件 git rm
- 从工作目录和暂存区域中删除文件,但不是历史记录的一部分(存储库,“提交目录”) git rm --cached
- 从暂存区域中删除,但不是工作目录和历史记录 git add .
在存在修改,新文件和已删除文件的情况下 - git会在缓存中记录修改和新的未经排版的文件。 ( git add
行为与某些选项有所不同。) 对各种git命令的--cached
选项会使它们在索引上运行,或者至少在索引上运行。
git add
和git rm
将工作目录中的更改记录到索引或缓存中。 把这些命令看作是一次构建你的下一部分。
在对索引中的内容感到满意之后,使用git commit
将索引中的更改移动到存储库。
大多数时候,你想要的是简单的序列git rm file
随后git commit
在你的历史当前点停止跟踪文件。
上一篇: When should I use rm, git rm, git rm
下一篇: Maintaining multiple branches of the same base project in VS