我的本地git存储库位于加密卷内。我希望只有在远程具有新提交时才能运行git pull --all
。但是,我无法使用here之类的post-receive挂钩,因为我没有加密卷的密码。这意味着即使挂钩将被触发,我仍然不知道安装卷的密码并拉出新的更改。所以我正在寻找其他一些替代方案,我想到的一种可能的方法是向遥控器询问最新版本的SHA并将其与本地副本知道的最新版本SHA进行比较,如果它们匹配我不需要运行pull命令,如果它们不匹配,那么我需要运行git pull命令。
我可以在远程存储库上运行git rev-parse master
吗?
您可以获得有关我的问题here
的更多背景信息答案 0 :(得分:3)
你不能这样做。
有两种简单的近似值:
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
来获取标题并保持工作副本不变