【问题标题】:Why use git rm instead of rm'ing files, directories, etc. and then using git add -u?为什么使用 git rm 而不是 rm'ing 文件、目录等然后使用 git add -u?
【发布时间】:2012-07-07 12:43:26
【问题描述】:

我无法让git rm 删除现在多余的目录及其项目中的文件。这让我想知道为什么git rm 是删除跟踪文件时公认的做法,而不是rm -rf git 之外的目录和文件,然后git add -u 暂存并准备删除以前跟踪的文件?后者对我来说似乎更有意义,但我可能不明白git rm 的优点。

【问题讨论】:

  • 你读过docs吗?与rm -rf 不同,git rm 有许多选项可以方便地管理 git 存储库中的文件。
  • git rm 有什么问题?它应该可以正常工作,它是一个命令而不是两个。
  • 好吧,这是我的误解,当显然 git 只跟踪文件时,我希望能够git rm 一个目录。目录中每个文件的git rm 然后删除目录,所以一切都很好。
  • @AndyBowskill:就像rm,您可以使用-rgit rm 递归地从一个或多个目录中删除所有文件。

标签: git rm


【解决方案1】:

当然,做某事总是有多种方法。使用git rm 的一些优点是:

  • 您实际上控制的是索引,而不是真正的文件系统。 Git 也会删除文件系统中的文件这一事实只是一个实用程序。
  • 这意味着您可以从 Git 中删除文件而不删除它们:git rm --cached
  • 您可以精确地仅删除那些您真正想要删除的文件,这与 git add -u 不同,它会将所有更改添加到索引中。

特别是最后一个对我个人来说非常重要,因为我想完全控制我添加到提交中的更改。所以使用add -u 很少会让我开心(就像add .)。当然,如果您对使用add -u 感到满意,请随意使用它。

【讨论】:

  • 谢谢,非常简洁,我现在可以感谢git rm
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 2013-05-19
  • 2023-03-09
  • 1970-01-01
  • 2011-01-12
  • 2021-10-06
  • 2013-02-07
  • 2011-12-29
相关资源
最近更新 更多