git日志和裸露的回购显示

Gra*_*uin 47 git

我在家里的本地网络中的文件服务器上创建了一个裸存储库.在此之后,我将现有存储库的一个分支从我的桌面PC推送到这个新的远程存储库.

推动工作完美,似乎所有数据都到了("git branch -va"给了我正确的数据).但我不能在裸存储库上使用git log或git show.我得到一个:

fatal: bad default revision 'HEAD'

或者根本没有输出

对于裸存储库来说这是正常的吗?有没有可能想象一切?

编辑:现在解决致命错误,但我没有收到"git log"或"git log unstable"的输出.桌面PC上的相同命令完美运行

Ric*_*sen 68

是的,这对于新的裸(和非裸)存储库来说是正常的.

说明

HEAD是Git称之为符号引用 - 对另一个引用的引用.

在非裸存储库中,HEAD通常指示当前检出的分支.新提交将导致名为by的分支HEAD被提前引用新提交.当HEAD指的是提交的对象,而不是直接的一个分支,它认为是分离的,这意味着还承诺不会造成一个分支引用先进引用新的提交(危险的,因为检查出不同的提交或分公司将呈现新任何现有引用都无法访问,因此很难找到它们并进行垃圾回收.

在裸存储库中,HEAD指示存储库的默认分支,以便在存储库的克隆中git checkout origin等效于git checkout origin/masterif master是默认分支(git help rev-parse有关详细信息,请参阅参考资料).

当Git初始化一个新的存储库时,它会初始化HEAD为引用refs/heads/master(换句话说,默认情况下HEAD指向master分支).但是,它不会创建一个名为branch的分支,master因为存储库中没有提交master指向的提交.

因此,在您创建master分支或更改HEAD为指向确实存在的分支之前,在运行查看的命令HEAD(例如git loggit show不使用任何参数)时,您将收到该错误.

您仍然可以使用不检查的命令HEAD.例如:

git log some_branch_that_exists
Run Code Online (Sandbox Code Playgroud)

固定

要删除错误消息,您可以执行以下操作之一:

可视化

为了可视化存储库中的所有内容,我使用以下内容:

git log --graph --oneline --date-order --decorate --color --all
Run Code Online (Sandbox Code Playgroud)

请注意,即使HEAD指向不存在的分支,上述命令也将起作用.