存储库副本中的commit_id不等于

时间:2015-11-16 19:43:54

标签: git

后:

git clone -b develop http://someurl.com
...
Updating working copy to revision 4539a1abd4e0c323ba38b1884cba85c57cd9d6fa
HEAD is now at 4539a1a Tidy
...

我有最新的commit id

git log -n 1
...
commit 4539a1abd4e0c323ba38b1884cba85c57cd9d6fa
...

但如果这样做:

git ls-remote
...
a1d3d5c5661aba62245bec3f8f31b0b23b36d09c    refs/heads/develop
...

commit id == a1d3d5c5661aba62245bec3f8f31b0b23b36d09c

从手册中我们看到:

  

显示远程存储库中可用的引用以及关联的提交ID。

a1d3d5c5661aba62245bec3f8f31b0b23b36d09c中找不到ID log

怎么可能?

EXT master分支 - 一切正常。

UPD

git branch -lvv
* develop 4539a1a [origin/develop: behind 2] Tidy

1 个答案:

答案 0 :(得分:0)

这只是意味着在您克隆时有人更新了遥控器上的分支develop。任何存储库都可能发生这种情况,但如果您的克隆需要很长时间(由于距离,大型存储库和/或网络链接速度慢),则更有可能发生这种情况。

git fetch也可能发生同样的情况:当您的提取完成时,您可能会在最新版本的几秒钟内过时。 :-)你的git在操作启动期间抓取最新的SHA-1 ID(la git ls-remote),然后启动整理对象的过程,当你完成所有操作时#39 ;添加了可能的新对象和/或远程引用已更改。 (Git在传输对象本身的长时间内没有锁定。)

git branch -vv显示你是"后面2"这意味着你的本地git已经拥有更新的origin/develop以及新的提交和对象,你可以简单{像往常一样{1}}或git merge重新同步。)