2013-04-03 82 views
1

我遇到了一个我无法解释的git问题,也没有找到修复的方法。提交没有正确显示

我有一个存储库,包含15000多个文件(大约650 MB),并且在过去的一周左右,我一直在失去提交,或者它们至少没有正确显示。它不会发生每次提交/推送,但是是随机的(就像它似乎)。我用Stash前端运行git。我想不出任何可能导致这种行为的基础设施变化等。

如果我在目录aaa/bbb/ccc中更改名为test.xml的文件,并提交并推送,我可以在稍后的时间点有时不会看到更改已完成的repo克隆或任何其他克隆。如果我做'git log',就没有日志条目。如果我在目录ccc中做'git log',我可以在父目录aaa和bbb中看到日志条目和相同的内容。

如果我做了'git reflog',那么这个改变就在那里,并且在正确的分支(主)上,如果我做了'git branch --contains'(在任何克隆中),它都可以在master分支中找到。

这是所有在Windows上使用git 1.7.11.msysgit.1运行。

+0

只是为了澄清:1.您推送的这些变更没有显示在您所推送的“远程”存储库中? 2.通过 “Stash frontend”你的意思是[Atlassian Stash](http://www.atlassian.com/software/stash/overview)? – 2013-04-03 20:14:20

+0

1.正确。在裸机仓库中执行'git log'时,我会得到相同的行为。 2.正确。 – 2013-04-04 06:05:40

+0

一个随机的可能性是你可能已经在aaa/bbb/ccc中初始化了另一个git仓库,这将解释''log''输出的差异,以及你的提交没有反映在遥控器中的事实。你可以验证没有额外的''.git''目录,并且你的遥控器配置正确吗?否则,我建议与Atlassian人讨论,或者将问题带入更加互动的领域,比如SO聊天或IRC。希望有帮助:) – 2013-04-04 15:35:21

回答

1

回答我的问题...

原来,“丢失”的提交可以通过在命令中找到“git的日志--follow”。为什么git认为那些提交是'重命名'仍然有点神秘,但可能由更改被稍后的合并提交覆盖,原始更改放回甚至稍后提交,然后再被几个合并提交覆盖。