我正在寻找一种检查git remote
自上次提取以来的更改的方法。
我知道git的工作原理是让远程查看更改,但我知道许多持续集成工具,例如“TeamCity”能够“ping”远程更改。
我想知道构建代理如何进行这些检查,以便我可以编写自己的工具来通知人们对回购的更改。
您将使用什么git命令检查git remote
上的更改?
git ls-remote .
会满足吗?
答案 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,你可以明显地将其与你的本地进行比较,但这不会让你获得有关提交了多少次提交的任何信息。