所以我有一个 git 存储库。我正在使用在 Cygwin/Windows 8 下运行的 git 1.7.9。
这个 git 存储库有这种奇怪的行为,因此它认为某个目录的某些子目录被跟踪,但包含它们的实际目录不是。
所以,我得到这样的奇怪:
$ git reset --hard
$ git status
#untracked files
foo
$ git clean -fd
removing foo
$ git status
#changes not staged
D foo/bar/whatever.txt
但是,然后,以另一种方式添加文件:
$ git add foo
$ git status
# changes not staged
A foo/bar/whatever.txt
如果我从那里提交,那么它当然会在尝试推动时引发疯狂的冲突。
偶尔git reset --hard
会修复它,但有时不会。我发现摆脱它的最好方法是检查一个新分支,删除我工作副本中的所有内容并运行git reset --hard
.
有没有其他人经历过这种奇怪的行为?我正在使用 git-tfs,这可能意味着这是一个错误,但在大多数情况下,它是一个常规的 git 存储库,所以我认为这并不重要。