【发布时间】:2011-12-01 00:05:31
【问题描述】:
我们的一位开发人员一直在使用他的 Git 存储库时遇到问题。他拉动,然后“git status”显示了一个完整的未跟踪文件列表(即,Git 认为它们是新的)实际上来自他最后一次拉动。实际上,您可以通过他的 git 日志返回并指定添加它们的特定提交,并且它在他的历史记录中。但是,如果您转到现在未跟踪的文件之一并对其进行 git 登录,则根本没有历史记录。
我完全被迷惑了。小组中的每个人,包括我,都是 Git 新手,所以我不能排除他可能在某个地方犯了错误,但这似乎不太可能。就像他的存储库不断损坏一样。
他正在使用 msysgit 1.7.6 和 Tortoise Git 1.7.3。我们在 myEclipse 中使用 eGit 有一段时间了,它反复崩溃,所以早期的问题都归咎于此。现在,我认为没有人再使用它了,所以我觉得我不能再责怪 eGit。
我需要 Stack Overflow 的 Git 大师的帮助!这可能是什么原因造成的?有没有什么情况是正常的?
根据请求,这里是损坏的存储库的 .git/config 文件:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = G:\\DotcomB
puttykeyfile =
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
name = jsmith
email = JoeSmith@somewhere.com
【问题讨论】:
-
您能提供更多信息吗?项目文件夹下用户的 .git/config 文件中有什么?你知道正在执行哪些 Git 命令(
git pull或git pull origin master最常见)。组中的其他用户是否重现了具有不同结果的确切步骤?项目文件夹下是否有一个.git目录,没有其他子文件夹? -
这是某个案例问题,在某种程度上情况有所不同,有点像stackoverflow.com/questions/52950/… ? (
git config core.ignorecase的值是多少?默认应该是true,如果是false的话……就可以解释了。 -
还有,你是用
git log -- untracked_file查看日志的吗? -
假设 git log untracked_file 和 git log -- untracked file 是一回事,那么是的。这就是我们注意到奇怪差异的方式。整个项目的 git 日志列出了包含文件的提交(首先将它们添加到本地文件中的文件),但它现在认为未跟踪的单个文件的 git 日志根本没有历史记录。所以就好像它患有阿尔茨海默症一样,他们来自哪里。
-
@John:它们并不完全相同,但是如果你当前有一个未跟踪的文件“foo”,并且曾经有一个文件“foo”被 git 跟踪,那么两者应该做同样的事情,我相信。至于回答你的问题,我认为你将不得不提供更多细节,比如确切的事件序列和/或一些实际的日志和状态输出。
标签: git msysgit egit tortoisegit