繁体   English   中英

如何合并另一个子文件夹中的git子文件夹?

[英]How to merge a git sub folder from another sub folder?

这是我们的git文件夹。

文件夹1 / xxx / a / b / c

文件夹2 / yyy / a / b / c

过去,我们可以使用SVN合并folder2 / yyy中folder1 / xxx

在Git中可以做同样的事情吗?

最简单的解决方案是将两个目录都设置为子模块/子树(它们已经具有一些单独的历史记录/ svn存储库,对吗?)。 然后,您只需将一个指向folder2存储库的远程添加到folder1存储库,就可以像其他远程存储一样合并更改:

# go to folder1 repository
cd /path/to/folder1repo
# or `cd folder1` if you are familiar with inline submodule editing caveats
# add a remote pointing to folder2 repo
git remote add folder2 /path/to/repo/folder2
# fetch it
git fetch folder2
# merge folder2 into folder1
git merge folder2/master

唯一需要注意的是,您实际上有一个子模块,并且每次合并这些文件夹时都必须提交到超级项目(因为,例如folder1将更改,并且superproject必须指向其他提交):

cd /path/to/superproject
git add folder1
git commit -m "Merged folder2 submodule into folder1"

作为子模块的替代方案,您可以使用两个伪造者仓库的子树合并,设置有些复杂,但是您只需拉动即可更新所有此类子树:)

这是一个不错的子树教程: http : //nuclearsquid.com/writings/subtree-merging-and-you/

顺便说一句。 您可以创建一个完全不同的项目的远程对象,并且可以使用简单的合并将其代码与您的代码合并:) git的使用场景是无限的:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM