我目前正在观察变化.git/refs/remotes/origin/master
我的目标是检测远程 SHA 的更改,大概是因为有人做出了提交。为了拉下我运行的最新远程详细信息git fetch --quiet --update-head-ok remoteName
。这似乎不是使用该命令更新的正确文件。
应该观察哪个目录/文件?
我目前正在观察变化.git/refs/remotes/origin/master
我的目标是检测远程 SHA 的更改,大概是因为有人做出了提交。为了拉下我运行的最新远程详细信息git fetch --quiet --update-head-ok remoteName
。这似乎不是使用该命令更新的正确文件。
应该观察哪个目录/文件?
不要git
手动监视内部工作中的文件。用来git
为你检查东西。在这种情况下git rev-parse --verify origin/master
,将向您显示本地副本的SHA origin/master
,并git ls-remote origin master
从远程获取 SHA。
我怀疑您遇到了文件.git/refs/remotes/origin/master
可能已过期的情况,因为许多不经常更改的引用实际上不再存储在单个文件中,而是存储在.git/packed_refs
. 如果两者都存在,git
则知道该信任哪一个。
如果远程源上的主分支已更新,则该文件将包含新的提交哈希。不同的遥控器和不同的分支将具有预期的相应文件夹/文件位置。
要准确查看记录更改的位置,请运行不带--quit
参数的 fetch 命令。响应的最后一行(如果有任何东西要获取)将告诉您下载的更改记录在哪里。
例如,“GIT HowTo”上的这个页面给出了例子
$ git fetch
From /Users/marina/Documents/Presentations/githowto/auto/hello
6e6c76a..2faa4ea master -> origin/master
最后一行表示远程主分支上的更改记录记录在origin/master
- 或者更具体地说,.git/refs/remotes/origin/master
.