使用git版本1.8.1.msysgit.1文件以某种方式被奇怪地跟踪。可能是什么原因?
我在git中有一个名为 missingFile 的文件。
$ ls
missingFile
$ git add missingFile
$ git status
# On branch test
nothing to commit, working directory clean
$ git commit missingFile
# On branch test
nothing to commit, working directory clean
现在我删除了这个文件。 Git不会错过它。这让我很好奇。
$ rm missingFile
$ ls
$ git status
# On branch test
nothing to commit, working directory clean
$ git commit
# On branch test
nothing to commit, working directory clean
然而,当检出文件时,它再次神奇地重新出现。
$ git checkout missingFile
$ ls
missingFile
并且差异显示文件。
$ git diff origin/master
diff --git a/missingFile b/missingFile
new file mode 100644
index 0000000..0633ff0
--- /dev/null
+++ b/missingFile
@@ -0,0 +1,1 @@
+missingFile_content
如何再次获取该文件的标准行为(识别删除的文件,提交删除,添加文件)?
答案 0 :(得分:1)
该文件具有 skip-worktree 属性。
中的 S 显示了这一点$ git ls-files -v
S missingFile
对git update-index --no-skip-worktree
的简单调用产生了预期效果:
git update-index --no-skip-worktree missingFile
$ git status
# On branch test
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: missingFile
#
no changes added to commit (use "git add" and/or "git commit -a")