6

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

有没有办法可以git rev-parse master在远程存储库上运行?

您可以在此处获得有关我的问题的更多背景信息

4

2 回答 2

3

你不能从字面上做到这一点。

有两个简单的近似值:

  • 如果您可以在遥控器上使用 ssh(或其他访问器),您可以运行git rev-parse,甚至可以git rev-list在那里运行,这可以让您获得尽可能多的 SHA-1。
  • 您可以使用从遥控器(包括)git ls-remote获取头部SHA-1。refs/heads/master假设您在本地拥有头部 SHA-1,所有这些都会告诉您“相同”或“不同”。如果它们不同,您将无法准确说出原因(尽管如果您走当地的转速,您可能会得到足够的信息)。

不过,这个问题有些奇怪:您说本地存储库位于您没有密码的加密卷中。如果是这样,你怎么知道当地的领导人是什么,和/或他们的历史?它们记录在存储库中。

于 2013-10-15T21:07:29.857 回答
0

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

于 2013-10-15T20:24:28.990 回答