【问题标题】:What causes a file to become untracked in Git?是什么导致文件在 Git 中无法跟踪?
【发布时间】:2017-02-13 10:27:20
【问题描述】:

我是 Git 新手,对一些使用 Gulp 编译成 .css 文件的 .scss 文件做了一些工作。

我已经完成了我的工作,现在准备将我修改后的文件推送到 Github。但是,当我执行git status 时,我看到了 3 个未跟踪的文件:一个日志、一个 .js 和一个 .scss。

这些文件是如何被标记为未跟踪的?我想我必须自己指定。

【问题讨论】:

  • 所有出现在工作区中且尚未进入 repo 的新文件都未被跟踪。

标签: git git-untracked


【解决方案1】:

文件默认处于untracked 状态。您必须将其添加到 git 以确保 git 开始跟踪它。

您可以通过编写以下代码跟踪特定文件

git update-index --no-assume-unchanged <path_to_file>

如果您要再次取消跟踪文件,您可以通过

git update-index --assume-unchanged <path_to_file>

git update-index 注册一个文件来索引 - 因此,确实开始跟踪文件。但是,正如其他答案已发布 git add 也将文件的内容添加到索引中 - 这会添加到跟踪文件并将此文件添加到暂存区域(准备提交)

【讨论】:

  • 对于刚开始学习 git 的人来说,这是不必要的复杂。我无法说出在利基之外的情况,在这种情况下,您希望这种行为而不是仅使用 git add 对文件进行暂存更改。哎呀,即使是git status 的帮助也给出了“使用“git add”来跟踪”
  • “不必要的复杂” - 你仍然必须说出正确的事情。相反,我觉得,当你在学习新东西时,最好是找到正确的东西,否则就会有一种倾向,以复杂的东西为名而忽略正确的东西!
【解决方案2】:

在 git 中,所有在工作目录中但没有被显式添加的文件(即git add)都被标记为“未跟踪”。这实际上意味着它们存在,但 git 不会跟踪它们的变化。

【讨论】:

  • 啊,好的。那么,在那种情况下,为什么要跟踪其他文件?我还没有使用 git add,所以它们不应该都显示为未跟踪吗?
  • 不行,因为git add 您最终还会将这些文件的内容添加到索引区域 - 当您只想跟踪这些文件时。
  • 你是克隆了 repo @MeltingDog 还是你已经开始的新 repo?
  • 这是一个新的仓库。是的,我就是这么说的:我还没有在这个分支上使用过 git add,那么如何跟踪它们呢?
  • @MeltingDog 在一个干净的 git repo 中,什么都不应该被跟踪。如果您确实在干净的 git 存储库中跟踪了文件,那就太奇怪了
猜你喜欢
  • 2010-10-05
  • 2012-03-28
  • 2011-05-21
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
相关资源
最近更新 更多