无法克隆git仓库

时间:2019-07-26 07:45:23

标签: git

克隆git repo时,我面临以下致命错误。

fatal: cannot process 'refs/remotes/origin/r2' and 'refs/remotes/origin/r2/qe' at the same time

此代表托管在AWS中,并且我使用此仓库已超过一年。最近2天,我无法克隆此文件。

1 个答案:

答案 0 :(得分:3)

Git有两种将引用写入磁盘的方法:作为文件系统中的文件以及作为packed-refs文件中的条目。

当您将引用写入文件系统时,不能同时拥有refs/remotes/origin/r2(因为这将是一个文件)和refs/remotes/origin/r2/qe(因为这将使r2成为目录) )。显然,r2不能同时是文件和目录,因此Git失败。

如果服务器同时具有这两个引用,则它们可能位于packed-refs文件中,该文件用于引用对象均已打包的引用。这比在文件系统中存储大量未更改的引用更有效,因此Git在打包存储库时会更新此文件。尽管不可能在所有情况下都使用此文件,但它也不会受到上述文件目录问题的困扰。

如果您只是尝试进行提取而不是完整克隆,则可能要先执行git fetch --prune origin才能删除服务器上不存在的分支。

如果您明确尝试克隆两个分支,则需要跳过两个分支的指定,因为这是不可能的。如果您在使用存储库时遇到问题,最好通知维护该存储库的人员,并要求他们删除其中一个引用,因为这会对尝试克隆的任何人造成问题。

如果无法执行此操作,则可以使用git clone --single-branch -b master origin进行克隆,以仅克隆master遥控器的origin分支(或您喜欢的任意分支),然后拉入您需要时使用git fetch来创建其他分支。