为什么当我使用Git签出新分支并将此新分支推送到原始仓库时,基本提交ID是0000000000000000000000000000000000000000?

时间:2014-08-07 09:00:14

标签: git phabricator

我在Git中使用update hook来检查Phabricator中是否已批准此推送(通过连接到mysql)。当我尝试在更新脚本中使用第二个参数作为旧的commitID时,当0创建此引用(分支)并且之前未按下时,我总是得到0000000000000000000000000000000000000000git 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

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

1 个答案:

答案 0 :(得分:1)

如果存储库中没有提交,则旧提交标识全为零。对于新分支也是如此,另请参阅Git receive/update hooks and new branches中的解释,该解释推荐了解决此问题的方法。