这个问题的后续:如果我有一个浅克隆,如何获取所有旧的提交,使它成为一个完整的克隆?
当前回答
下面的命令(git版本1.8.3)将把浅克隆转换为常规克隆
git fetch --unshallow
然后,访问所有分支的起源(感谢@Peter在评论中)
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
其他回答
编辑:git fetch -unshallow现在是一个选项(感谢杰克·奥康纳)。
你可以运行git fetch——depth=2147483647
来自《shallow》的文档:
特殊深度2147483647(或0x7fffffff, 32位有符号整数可以包含的最大正数)表示无限深度。
下面的命令(git版本1.8.3)将把浅克隆转换为常规克隆
git fetch --unshallow
然后,访问所有分支的起源(感谢@Peter在评论中)
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
我只需要将一个回购深化到一个特定的提交。
在阅读man git-fetch之后,我发现不能指定提交,但可以指定日期:
git fetch --shallow-since=15/11/2012
对于那些需要进一步深化的人,另一个人引用道:
——深化= <深度> 类似于——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
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别