自修订日期/时间以来,无需拉动即可远程检查更改

时间:2012-10-21 07:47:45

标签: git

我正在寻找一种检查git remote自上次提取以来的更改的方法。

我知道git的工作原理是让远程查看更改,但我知道许多持续集成工具,例如“TeamCity”能够“ping”远程更改。

我想知道构建代理如何进行这些检查,以便我可以编写自己的工具来通知人们对回购的更改。

您将使用什么git命令检查git remote上的更改?

git ls-remote .会满足吗?

2 个答案:

答案 0 :(得分:1)

我猜他们通过做git fetch并看到什么引用改变来做“ping”。 post-update挂钩可用于检查此内容。

查看远程foo上的分支bar是否已更改的另一种方法是执行git fetch bar foo,将分支提取到FETCH_HEAD,然后运行,例如git log bar/foo..FETCH_HEAD将您原来的foo版本与刚刚获得的版本进行比较。

最后一条评论:您可以使用git ls-remote查看远程分支在您上次查看后是否已更新,但访问您必须提取的提交元数据(日期)。

答案 1 :(得分:1)

构建代理通常通过让服务器对更改进行ping操作来实现,并通过post-receive挂钩来完成,该挂钩使用新提交SHA发送HTTP POST。我没有理由在没有抓取的情况下检查遥控器。

git ls-remote会为你提供SHA,你可以明显地将其与你的本地进行比较,但这不会让你获得有关提交了多少次提交的任何信息。