没有结帐分支的Git diff

时间:2011-03-30 03:48:25

标签: git

举个例子:

在内核源代码中,它有很多标签。我可以区分它们,例如:

git diff v2.6.37-rc3 v2.6.38-rc4

我得到了正确的输出。

现在我将.git目录复制到另一个地方,在这个新的.git目录中,我也可以使用

git diff v2.6.37-rc3 v2.6.38-rc4

获得正确的输出。

但是,我有另一个分支,如“mydev”。我无法结账到这个mydev分支,并执行git diff v2.6.37-rc3 v2.6.38-rc4命令。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您不能只复制非裸GIT存储库的.git目录,并期望能够签出分支机构。当非裸时,存储库具有索引并需要相应的工作目录。请注意,一些GIT命令和参数(如'diff'和两个提交)仅在存储库对象/提交上运行,因此不需要工作目录 - 因此它们可以工作,如您所见。但是其他命令(如提交和工作目录之间的'diff')需要工作目录。

答案 1 :(得分:0)

您应该获得与以前相同的输出。在存储库中有一个分支应该无关紧要。