【发布时间】:2017-10-19 04:14:58
【问题描述】:
我正在使用 CircleCI 构建一个 Android Github 私有项目。构建工作正常,但容器上 origin/master 的提交历史与我在本地机器上得到的不同。
我在本地机器和容器上做了git rev-list origin/master 的 diff b/w 输出,发现了很多差异 - 即容器上的 repo 中缺少提交。
我尝试将项目从 Github 克隆到我的本地计算机,它向我显示了相同的 git 提交历史(正确的提交计数),CircleCI 是否在做不同的事情?
【问题讨论】:
-
git rev-list origin/master的输出无关紧要。如果 CircleCI 构建的修订版是正确的,那就没问题了。 CircleCI 可能有一个浅克隆或一个特定于分支的提取,它不会触及其origin/master。 -
这对我很重要,因为我实际上使用
git rev-list --first-parent --count origin/master的输出作为我的应用程序的版本代码!此外,我确信 CircleCI 正在主分支上构建。 -
更多信息:我在容器上尝试了
git log --reverse,但这不是最初的提交。 -
那没关系。
origin/master记录上次同步期间远程存储库中master的状态。它并不总是远程存储库中master的当前负责人。本地机器中的origin/master与容器中的origin/master不同是很正常的,因为它们可以在不同的时刻与远程存储库同步。 -
1.您的本地计算机同步。远程存储库由某人更新。容器同步。这导致本地机器的提交少于容器。 2.您的本地机器进行了完整克隆,但容器进行了浅克隆,例如
--depth=1。然后本地机器比容器有更多的提交。这些是我想到的可能的情况。
标签: android git github continuous-integration circleci