克隆git repo时,我面临以下致命错误。
fatal: cannot process 'refs/remotes/origin/r2' and 'refs/remotes/origin/r2/qe' at the same time
此代表托管在AWS中,并且我使用此仓库已超过一年。最近2天,我无法克隆此文件。
答案 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
来创建其他分支。