如何将Git浅克隆转换为完整克隆?
接下来的问题是:如果我有一个浅层克隆,如何获取所有较旧的提交以使其成为完整克隆?编辑:如何将Git浅克隆转换为完整克隆?,git,clone,Git,Clone,接下来的问题是:如果我有一个浅层克隆,如何获取所有较旧的提交以使其成为完整克隆?编辑:git fetch--unshall现在是一个选项(感谢Jack O'Connor) 您可以运行git fetch--depth=1000000(假设存储库的提交少于一百万次)。下面的命令(git版本1.8.3)将浅层克隆转换为常规克隆 git fetch --unshallow 然后,访问origin上的所有分支(在评论中感谢@Peter) 我只需要将回购深化到特定的承诺 在阅读了mangitfetch之后
git fetch--unshall
现在是一个选项(感谢Jack O'Connor)
您可以运行git fetch--depth=1000000
(假设存储库的提交少于一百万次)。下面的命令(git版本1.8.3)将浅层克隆转换为常规克隆
git fetch --unshallow
然后,访问origin上的所有分支(在评论中感谢@Peter)
我只需要将回购深化到特定的承诺 在阅读了mangitfetch之后,我发现不能指定提交,但可以指定日期:
git fetch --shallow-since=15/11/2012
对于那些需要逐步深化的人,另一位man
quote:
——深化=
与--depth类似,只是它指定了
从当前浅边界而不是从尖端提交
每个远程分支的历史记录
您可以尝试以下方法:
git fetch --update-shallow
上述消息都没有奏效。我正在尝试从浅层克隆开始使用git标记 首先我试过
git fetch --update-shallow
哪种方法成功了一半。
然而,没有可用的标签
git fetch --depth=1000000
最后一个命令真的获取了标记,我终于可以执行了
git checkout -b master-v1.1.0 tags/v1.1.0
就这样吧
HTH实现浅克隆到深克隆的两种方法:
f. git remote set-branches origin '*'
[此步骤也可以通过在.git/config中编辑以下行手动完成
fetch=+refs/heads/master:refs/remotes/origin/master
要(将主控形状替换为*):
fetch=+refs/heads/*:refs/remotes/origin/*
]
这会将浅克隆转换为包含所有历史记录和分支详细信息的深克隆
现在,git fetch--unshall已经存在(正如@sdram的答案一样),这个答案不再是最好的答案。这两个答案对我都不起作用。这两个命令都成功地获取了所有丢失的提交,但是当我尝试推送新提交时,我得到一个错误,服务器不知道'shall'refs
git fetch--depth=2147483647
是为命令提供的最大可能深度。我使用了git fetch--unshall
,但它仍然没有显示所有的分支。“希德,给我定好了。你考虑标记@ SDRAM的答案吗?”这是正确的。相关:这并不能消除单分支的副作用。为此,编辑.git/config并将fetch=+refs/heads/BRANCHNAME:refs/remotes/origin/BRANCHNAME更改为fetch=+refs/heads/*:refs/remotes/origin/*这不会创建跟踪远程分支的本地分支,因此您仍然需要签出-b BRNAME origin/BRNAME来获得该设置。另请参见:git-config remote.origin.fetch“+refs/heads/*:refs/remotes/origin/*";
git-fetch-origin
从答案中应该与手工编辑相同。git/config这仅在repo标记为浅时有效。我不记得怎么做了,但在有些情况下,你可以在没有明确做过浅层克隆的情况下完成不完整的回购@svick的答案每次都有效。git fetch--unshall--update head ok origin'+refs/heads/*:refs/heads/*'
对我有效否决票是什么?请解释一下,这样我就可以改进了。非常感谢。
git checkout -b master-v1.1.0 tags/v1.1.0
b. cd customSP01
c. git fetch –depth=100
d. get fetch –depth=500
....
e. git fetch –unshallow
f. git remote set-branches origin '*'
g. git fetch -v