希望有人可以帮忙解决这个问题,因为它可能会阻止我们将开发环境切换为使用git。
我们将在共享的网络环境中拥有多个git repos。相当标准的git用法。但是,我们还需要一个需要复制源的隔离环境。这基本上是通过刻录CD并将源带入环境来实现的。我们的一些代码库非常大,所以我们的CM人员不希望每次需要将源都带入封闭环境时复制整个repo。
我们目前使用ClearCase,它能够从外部仓库导出增量以及提交信息,然后将其导入到隔离的仓库中。代码永远不会将孤立的仓库重新导入外部仓库。
这个功能在git中可用吗? I.E.在外部仓库,导出变更集,将它们刻录到CD上,将它们带入隔离环境并将这些变更集(以及提交信息)应用于该仓库?
感谢您的帮助!
答案 0 :(得分:2)
正如twalberg建议的那样使用git bundle
。您可以将整个分支branch-name
与:
git bundle create bundlefile branch-name
或仅是last-release-version
代码后的增量:
git bundle create bundlefile-delta last-release-version..branch-name
捆绑包比传输补丁更有效,并且更易于应用:
git fetch bundlefile-delta branch-name:branch-name
答案 1 :(得分:1)
这样做的一种方法是
format-patch
$ git format-patch 8fbee89..master 0001-Remove-the-insane-fold-operation-replace-with-saner-.patch 0002-Make-array-construction-use-LOADVN-slightly-faster.patch 0003-EACH-need-not-make-a-backtrack-point-on-the-last-ite.patch
每个文件中包含的差异和很好的信息就像这样
From bc42812715fb56e72717bf18809dd9ba59771b3a Mon Sep 17 00:00:00 2001 From: Stephen Dolan Date: Thu, 16 May 2013 15:07:53 +0100 Subject: [PATCH 1/3] Remove the insane "fold" operation, replace with saner
或者如果您使用的是GitHub,它可以为您制作它!
github.com/stedolan/jq/compare/8fbee89...master.patch
然后将补丁文件带到“锁定”区域或其他任何地方,然后运行
git am 0001-Remove-the-insane-fold-operation-replace-with-saner-.patch
等等。