验证一个裸的Git仓库是否有数据

3
如何验证文件是否正确地推送到裸仓库?由于裸仓库没有工作树,所以显然不能像普通的git repo一样简单地使用“git log”进行操作。
我知道有一些解决方案,比如这里建议的方法,但我想知道如何通过命令行来完成。

请注意,我不是要看到它里面有什么内容;只是要确认它里面确实有东西(即不是一个空的裸仓库)。 - Qix - MONICA WAS MISTREATED
“git log” 甚至不考虑工作区,因此在裸仓库中工作正常。 - vonbrand
2个回答

3

你可以尝试使用 git ls-remote 命令:

 git ls-remote http://www.kernel.org/pub/scm/git/git.git

 # or, also a bare repo
 git ls-remote https://github.com/git/git

只要它不仅返回空树的SHA1值,那就意味着在上游存储库中有提交。

太完美了!这个运行得非常完美。请注意,这也适用于 ssh:// 协议的 URL。 - Qix - MONICA WAS MISTREATED

3

git log 命令可以正常使用。裸仓库仍然被视为仓库。显然。:)

git@koiru /var/git/repositories/sanpera.git $ ls
total 37k
-rw-r--r--   1 git nogroup 1.2k Mar  1 06:00 FETCH_HEAD
-rw-r--r--   1 git nogroup   23 Sep 14  2011 HEAD
drwxr-xr-x   2 git nogroup 4.1k Sep 14  2011 branches/
-rw-------   1 git nogroup  236 Jun 12  2012 config
-rw-r--r--   1 git nogroup   34 Jun 12  2012 description
drwxr-xr-x   2 git nogroup 4.1k Jun 12  2012 hooks/
drwxr-xr-x   2 git nogroup 4.1k Sep 14  2011 info/
drwxr-xr-x 222 git nogroup 4.1k Sep  9 06:00 objects/
drwxr-xr-x   5 git nogroup 4.1k Oct 18  2011 refs/

git@koiru /var/git/repositories/sanpera.git $ git log
commit a60f2ad3cc118eb7fd290be56448bcef82fe8252
Author: Eevee <git@veekun.com>
Date:   Sun Sep 2 18:22:50 2012 -0700

    Stub a few more tests.

...

我收到了一个“致命错误:默认修订版本'HEAD'不良”的提示。 - Qix - MONICA WAS MISTREATED
是的,“显然”这一点有点讽刺。我应该用更好的措辞来表达它;) - Qix - MONICA WAS MISTREATED
没有HEAD听起来像是你没有任何数据的很好的指示。检查refs/heads目录;那里列出了所有的分支。如果它是空的,你什么也没有。 - Eevee
VonC的回答确实显示了一个正确的分支。在我推回另一个远程之前,我忘记拉取所有的分支了。 - Qix - MONICA WAS MISTREATED

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接