没有结帐分支的Git diff

问题描述:

举个例子:没有结帐分支的Git diff

在内核源代码中,它有很多标签。我可以diff的他们,如:

git的差异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命令。

我该怎么办?

+3

当你说你不能签出分支或者执行'git diff'时,你正在尝试什么命令?你会得到什么错误? – 2011-03-30 04:20:46

你应该得到和以前一样的输出。在存储库中有一个分支应该不重要。

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