我想从远程���库获取一次提交(当然包括历史记录)到本地仓库。有些 Stack Overflow 的回答建议使用以下方法,但实际上并没有成功:
md foo
cd foo
git init
git fetch https://github.com/ld4apps/lda-serverlib.git f1e32e18a90e10c150221af55c69aeafaa42c57a
这会产生以下错误:
错误:没有这样的远程引用f1e32e18a90e10c150221af55c69aeafaa42c57a
令人惊讶的是,以下内容(在某种程度上)可以工作:
git fetch https://github.com/ld4apps/lda-serverlib.git :f1e32e18a90e10c150221af55c69aeafaa42c57a
这将创建一个名为f1e32e18a90e10c150221af55c69aeafaa42c57a
的本地分支(我并不想要它),但至少新分支具有我尝试获取的内容。我可能期望下面的命令会做同样的事情,但它得到了与第一个示例相同的错误:
git fetch https://github.com/ld4apps/lda-serverlib.git f1e32e18a90e10c150221af55c69aeafaa42c57a:f1e32e18a90e10c150221af55c69aeafaa42c57a
我在Windows和Linux上使用了几个不同版本的Git,并看到了相同的行为。
有人能解释一下这是怎么回事吗?我对Git、fetch和refspecs的理解有哪些不足之处?我真正想要的是一个单独的git fetch命令,我可以向其中提供远程分支或标签的ID或提交ID,它将获取相应的提交。
git fetch --depth=1
,那么就不会出现这种情况(因为在您的示例中,f1e32e18a90e10c150221af55c69aeafaa42c57a 是当前的最新提交)。但这并不是问题所在,对吧? - Ry-