我的两个存储库来自同一项目。我在提交3
之后进行了历史记录的切割,现在仅与Repo ProjectnameWorking 一起使用。
git log 回购“ ProjectnameArchiv”:
30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
git log 回购“ ProjectnameWorking”:
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
是否可以将以后的历史记录和项目文件都连接到一个?
git log 回购“项目名称”
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
编辑:
答案 0 :(得分:1)
是的,这是可能的,但是其中一个项目的SHA将会改变:
创建一个公共的远程存储库:
/some/other/path> git init . --bare
在ProjectnameArchiv
的{{1}}中创建分支并将其推送到远程:
9aa472d04501a14b5b704fde32445461f99f539a
在另一个存储库中执行相同的操作,但获取而不是推送:
ProjectnameArchiv> git branch merge-base 9aa472d04501a14b5b704fde32445461f99f539a
ProjectnameArchiv> git remote add origin file:///some/other/path
ProjectnameArchiv> git push --all
cherry-pick 第一次进入归档分支的工作提交:
ProjectnameWorking> git branch working-top 2932c4b8ea681f0a97bf151ccc46d2044e8e5a50
ProjectnameWorking> git remote add origin file:///some/other/path
ProjectnameWorking> git fetch origin
如果提交的次数很少,则可以继续进行挑选,但是对于较大的提交, rebase-ing 将工作分支的其余部分转移到archive分支的速度更快:< / p>
ProjectnameWorking> git checkout -b archive origin/merge-base
ProjectnameWorking> git cherry-pick 9aa472d04501a14b5b704fde32445461f99f539a
您可以添加git的ProjectnameWorking> git rebase --onto archive 9aa472d04501a14b5b704fde32445461f99f539a working-top
选项以在开始之前检查它的作用,并在出现问题时中断该过程。
之后,将工作存储库中的更改添加到存档存储库中,但是它们获得了新的SHA。