由于磁盘空间和网络带宽,我想从给定标签开始克隆一个linux存储库(比方说v3.13)。
我设法使用--depth
和-b
克隆了该代码。
$ git clone -b v3.13 --depth=1 https://github.com/torvalds/linux.git
[ cut ]
$ git log
commit d8ec26d7f8287f5788a494f56e8814210f0e64be
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun Jan 19 18:40:07 2014 -0800
Linux 3.13
现在假设我想跟踪linux中完成的工作,我想从3.13到(例如)3.14重新提交。
$ git pull origin v3.14 --update-shallow
[ asks me to merge ]
$ git log
commit 9a50c0fe200b079731a61aea1760b8adc44150ec
Merge: d8ec26d 455c6fd
Author: me <me@plop.org>
Date: Tue Mar 29 17:31:54 2016 +0200
Merge tag 'v3.14' of https://github.com/torvalds/linux into v3.13
Linux 3.14
commit 455c6fdbd219161bd09b1165f11699d6d73de11c
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun Mar 30 20:40:15 2014 -0700
Linux 3.14
[...]
# G goes to the end
commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Author: Linus Torvalds <torvalds@ppc970.osdl.org>
Date: Sat Apr 16 15:20:36 2005 -0700
Linux-2.6.12-rc2
[...]
显然出现了问题,因为我必须合并提交(但我没有更改任何文件),更重要的是,我从存储库中获取了整个历史记录;这正是我想要避免的。
如何更新我的存储库而不将整个历史记录放在克隆上提供的初始提交之前?