【发布时间】:2012-02-23 15:39:31
【问题描述】:
[编辑:根据要求添加命令输出,并为清晰起见重新组织] 我已经签出了一个特定 repo 的两个克隆。
git log
commit e06424b5...
...
commit 557a0eb8...
在两者中显示相同的内容,顶部有相同的哈希。
git remote show origin
两者都一样
git branch
* master
两者都一样
现在有些不同了。
来自“好”克隆:
git log origin/master..
commit e06424b5...
git show-ref HEAD
e06424b5... refs/remotes/origin/HEAD
# On branch master
nothing to commit (working directory clean)
来自“坏”克隆:
git log origin/master..
commit 557a0eb8...
git show-ref HEAD
557a0eb8... refs/remotes/origin/HEAD
git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
这是不同的[更正:我之前报告过这个输出是相同的]。 show-ref 似乎表明此结帐是一个提交落后,而状态表示它是领先的。但是git reset --hard e06424b5 没有任何改变。
当我问“坏”克隆它认为需要推送什么时:
git diff --stat origin/master
它显示了作为 e06424b5 提交的一部分的文件,但事实上,这个结帐甚至拥有这些文件的唯一原因是因为我提取了它们。
任何人都知道如何让结帐意识到它没有什么可以推送的吗?
[编辑:这里有一些额外的命令及其来自“坏”克隆的输出...]
git log --graph --decorate --oneline
* e06424b (HEAD, master)
* 557a0eb (origin/master, origin/HEAD)
git rev-parse origin/master
557a0eb
git rev-parse HEAD
557a0eb (the previous hash)
e06424b (the correct, most recent hash)
【问题讨论】:
-
你的cmets不是很清楚。来自 git 的一些实际响应会比你给它的命令更有帮助......“git diff HEAD origin/master”有什么帮助吗?
-
是的,'git diff HEAD origin/master' 显示了大量差异,这是有道理的,因为 HEAD 指向的是前一个哈希,而不是最新的
-
您将 HEAD 设置为什么?当您执行“git 分支”时,显示的当前分支是什么?
-
您能否在两个克隆上显示
git rev-parse origin/master、git rev-parse HEAD和任一克隆上的git ls-remote origin的输出? -
git fetch不清除此消息?我以前解决过这个问题:stackoverflow.com/questions/7365415/…
标签: git