我可以在没有本地副本的情况下在远程存储库上发出git rev-parse吗?

时间:2013-10-15 20:19:52

标签: git bitbucket git-pull

我的本​​地git存储库位于加密卷内。我希望只有在远程具有新提交时才能运行git pull --all。但是,我无法使用here之类的post-receive挂钩,因为我没有加密卷的密码。这意味着即使挂钩将被触发,我仍然不知道安装卷的密码并拉出新的更改。所以我正在寻找其他一些替代方案,我想到的一种可能的方法是向遥控器询问最新版本的SHA并将其与本地副本知道的最新版本SHA进行比较,如果它们匹配我不需要运行pull命令,如果它们不匹配,那么我需要运行git pull命令。

我可以在远程存储库上运行git rev-parse master吗?

您可以获得有关我的问题here

的更多背景信息

2 个答案:

答案 0 :(得分:3)

你不能这样做。

有两种简单的近似值:

  • 如果您可以在遥控器上使用ssh(或其他一些访问器),则可以在那里运行git rev-parse甚至git rev-list,这样可以获得任意数量的SHA-1。
  • 您可以使用git ls-remote从远程(包括refs/heads/master)获取 head SHA-1。假设你在本地拥有头部SHA-1,所有会告诉你的是“相同”或“不同”。如果它们不同,你就无法准确地说出为什么(尽管如果你走的是本地转速,你可能已经足够了。)

但问题有些奇怪:你说 local repo是在你没有密码的加密卷中。如果是这样,你怎么知道当地的是什么,和/或他们的历史?它们被记录在回购中。

答案 1 :(得分:0)

你有没有理由不拉?如果是因为合并涉及拉动你可以总是发出git fetch来获取标题并保持工作副本不变