我在Git中使用update hook来检查Phabricator中是否已批准此推送(通过连接到mysql)。当我尝试在更新脚本中使用第二个参数作为旧的commitID时,当0
创建此引用(分支)并且之前未按下时,我总是得到0000000000000000000000000000000000000000
个git checkout -b master
。
但是我想得到master的最后一个commitID来演示这个引用的起点。
我的主分支的最后一个commitID是978881526a1be5dc49aeef93cd83679c2142eb60
我正在使用master分支来检查这样的新分支git checkout -b t1
然后我编写了一些东西并提交了一些时间,所以我得到了一个新的分支主管:dfb3094b7e9f06a8bf49671b5bbab45dd5c4318e
最后,我使用git push origin t1
我希望获得更新脚本的参数如下:
$1 refs/xxx/t1
$2 978881526a1be5dc49aeef93cd83679c2142eb60
$3 dfb3094b7e9f06a8bf49671b5bbab45dd5c4318e
但我得到了如下:
$1 refs/xxx/t1
$2 0000000000000000000000000000000000000000
$3 dfb3094b7e9f06a8bf49671b5bbab45dd5c4318e
有谁知道如何解决这个问题?
答案 0 :(得分:1)
如果存储库中没有提交,则旧提交标识全为零。对于新分支也是如此,另请参阅Git receive/update hooks and new branches中的解释,该解释推荐了解决此问题的方法。