检测远程分支的更改

时间:2013-02-27 17:41:48

标签: git

我目前正在观察.git/refs/remotes/origin/master

的变化

我的目标是检测遥控器上的更改SHA,大概是因为有人提交了。为了下拉最新的远程细节,我运行git fetch --quiet --update-head-ok remoteName。这似乎不是使用该命令更新的正确文件。

应该观察哪个目录/文件?

2 个答案:

答案 0 :(得分:3)

不要手动监控git内部工作中的文件。使用git为您检查一些事情。在这种情况下,git rev-parse --verify origin/master会向您显示本地副本origin/master的SHA,以及git ls-remote origin master以从遥控器获取SHA。

我怀疑您遇到文件.git/refs/remotes/origin/master可能已过期的情况,因为许多不经常更改的引用不再实际存储在单个文件中,而是.git/packed_refs 。如果两者都存在,git知道要信任哪一个。

答案 1 :(得分:1)

如果远程源上的主分支已更新,那么该文件将包含新的提交哈希。不同的遥控器和不同的分支将具有预期的相应文件夹/文件位置。

要准确查看记录更改的位置,请运行不带--quit参数的fetch命令。响应的最后一行(如果有任何要提取的内容)将告诉您下载的更改的记录位置。

例如,这个page on 'GIT HowTo'给出了示例

$ git fetch
From /Users/marina/Documents/Presentations/githowto/auto/hello
   6e6c76a..2faa4ea  master     -> origin/master

最后一行表示遥控器主分支上的更改记录记录在origin/master - 或更具体地说,.git/refs/remotes/origin/master