2

我在 Git 中使用更新挂钩来检查此推送是否已在 Phabricator 中获得批准(通过连接到 mysql)。当我尝试在更新脚本中使用第二个参数作为旧的 commitID 时,我总是得到 400秒,就像0000000000000000000000000000000000000000这个引用(分支)是由创建git checkout -b master而不是之前推送的一样。但是我想获取master的最后一个commitID来演示这个引用的起点。

像这样:

我的 master 分支的最后一个 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

有谁知道如何解决这个问题?

4

1 回答 1

1

当存储库中没有提交时,旧的提交 ID 全部为零。对于新分支也是如此,另请参阅Git 接收/更新钩子和新分支中的解释,其中推荐了解决此问题的方法。

于 2014-08-07T09:28:27.473 回答