没有结帐分支的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
命令。
我该怎么办?
答
你应该得到和以前一样的输出。在存储库中有一个分支应该不重要。
答
您不能复制非裸GIT存储库的.git目录,并期望能够检出分支。当非裸露时,存储库具有索引并且需要相应的工作目录。请注意,一些GIT命令和参数(比如'diff',带有两个提交)仅对存储库对象/提交进行操作,因此不需要工作目录 - 因此它们可以工作,正如您所见。但是其他命令(如提交和工作目录之间的'diff')需要工作目录。
当你说你不能签出分支或者执行'git diff'时,你正在尝试什么命令?你会得到什么错误? – 2011-03-30 04:20:46