抱歉,标题有些冗长和混乱。我们有一个具有以下目录结构的git存储库(根代表存储库根;名称是虚构的):
/
/dir1/
/dir2/
/dir2/subdir1/
/dir2/subdir2/
团队同事创建了一个新的git存储库,并带有的副本/dir2/subdir1
,即/dir2/subdir1
成为新存储库的根。我们在该新存储库中进行了一些提交(约15次),然后我们决定要在旧存储库中复制新提交。
什么是执行此操作的最佳方法?
当然,我们可以从新存储库中创建一个补丁并将其作为旧提交中的单个提交应用,但是这样做会丢失历史的详细程度。
在此期间,旧存储库中没有涉及提交的提交/dir2/subdir1
,因此绝对不应有冲突。
解决的办法是使用git format-patch
和git am
。在新的存储库中,我做了一个
git format-patch $revision
,$revision
是新存储库中与旧存储库状态相对应的修订,即在何处/dir2/subdir1
添加了修订。这大约创建了15个文件,其中包含每个提交的补丁。
然后,我移至旧的存储库,并git am
应用了刚刚创建的补丁。我只需要指定必须应用这些补丁的目录:
git am --directory dir2/subdir1 $patches
,在$patches
上一步中创建的文件在哪里。
现在,提交已从新存储库移到旧存储库,我很高兴!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句