我在线阅读关于git的建议,建议每个项目都有一个git存储库。目前我的设置遵循该规则,但最近我拥有的项目数量正在增加(=存储库数量正在增加),我想将常见项目移动到一个存储库中,每个存储库都在孤立分支下(类别类别)。
例如,如果我拥有包含历史记录的P1
和P2
存储库,我希望创建一个包含2个孤立分支的存储库P
P1
和P2
并将P1
和P2
存储库中的历史记录传输到P
存储库中的相应分支。
我想知道是否有人可以告诉我(git命令)如何将历史P1
和P2
转移到P
孤儿分支。
谢谢,
答案 0 :(得分:1)
完成您在存储库P
git remote add P1 urlToP1
git remote add P2 urlToP2
git fetch --all
您会发现P1和P2的所有分支都为P1/branchName
。然后,您可以创建本地分支。
关键点在于git fetch doc
从一个或多个其他存储库获取分支和/或标记(统称为“refs”)以及完成其历史记录所需的对象。
这些对象包括提交。由于两个原始存储库P1
和P2
不共享任何提交,因此您最终会得到两个单独的图表。
答案 1 :(得分:0)
很好的建议弗朗切斯科。在完成git fetch
的工作时,我会通过指定source:target
分支并使用您的 local P1
和P2
存储库对它进行一些约束。我还想补充您的答案,以便完全涵盖原始问题。
假设您要将master
和P1
的{{1}}分支移动到P2
上名为{的两个新的不存在分支中{1}}和P
(不要提前创建p1和p2分支)。
在P上添加远程存储库
p1
您还可以指定回购网址而不是路径。
即p2
仅获取所需的内容!(n标志不包括标签,您可能希望将其取出)
git remote add P1 ~/path/to/P1
git remote add P2 ~/path/to/P2
语法:
git remote add P1 urlToP1
git fetch -n P1 master:p1
git fetch -n P2 master:p2