该--depth 1选件git clone:
创建一个浅层克隆,其历史记录被截断为指定的修订数.浅存储库有许多限制(您不能克隆或获取它,也不能从中推送或插入它),但如果您只对历史悠久的大型项目的近期历史感兴趣并且希望将修补程序作为补丁发送.
但是我已经成功完成了一个浅层克隆,提交了一些更改并将这些更改推回到(裸克隆)源.
这对我有意义 - 我的意思是为什么不呢?当克隆的HEAD在原点可识别时,我的提交就在此之上,似乎没有理由.但手册说不然.
我喜欢浅层克隆的想法 - 例如drupal核心:当我从7开始时,我无法知道drupal 4中发生了什么 - 但我不想在脚下射击自己.
那么浅层克隆是否安全,在其中开发提交,再次拉动以跟上来自原点的更新?
我恐怕找不到任何类似这种特殊场景的东西.
我有一个有很多历史的git存储库:500多个分支,500多个标签,可以追溯到2007年中期.它包含~19,500次提交.我们想在2010年1月1日之前删除所有历史记录,以使其更小更容易处理(我们将在存档库中保留历史记录的完整副本).
我知道我想要成为新存储库的根目录的提交.但是,我不能找出正确的git mojo来截断repo以从那个提交开始.我猜的是一些变种
git filter-branch
Run Code Online (Sandbox Code Playgroud)
涉及移植是必要的; 它也可能是必要的对待每一个我们要分别保持在200多个分支机构,然后修补回购重新走到一起(这是我不知道该怎么做).
有没有人做过这样的事情?如果重要的话,我有git 1.7.2.3.
我需要将完整的repo转移到新的非联网机器,最好是作为单个文件实体.git的捆绑允许git fetch,git pull操作风格在sneakernet环境,但似乎假设你已经在目标计算机上回购的工作版本.
什么是正确的调用:
我想克隆Linux内核repo,但仅从3.0版本开始,因为内核repo非常庞大,如果我可以做一个浅层克隆,我的版本控制工具运行得更快.我的问题的核心是:我如何告诉git --depth参数的"n"值是什么?我希望这会奏效:
git clone http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --depth v3.0
谢谢.
提交和修订之间有什么区别?我们使用SVN,并从Atlassian Fisheye获取指标.在Fisheye有一个报告显示"顶级提交者 - 通过修订"和"顶级提交者 - 通过提交".
这里没有人可以告诉我有什么区别.
非常感谢!安迪