让我们称之为原始状态A。
我通过状态F将状态B提交到回购1.状态B代表状态A的修改版本。我犯了错误,即在回购1中没有提交状态A到B.
在回购2中,我在状态A中添加了原始来源的副本。然后,我进行了更改,使其看起来像状态B(在回购1中不是字面上的状态B,但是类似于它)。然后,我在Repo 1中手动对状态B进行了更改,使其看起来像状态F(在字面意义上不像回购1中的状态F,但类似于它)。然后,我从状态F更改为状态当前。
我想将Repo 1和Repo 2合并为一个逻辑历史时间轴。我不希望Repo 2中的任何当前文件(代表旧状态)处于Repo 1的当前状态。
最简单的方法是什么?有什么建议吗?
答案 0 :(得分:1)
听起来你想要添加状态A
作为第一个回购的根目录。您可以通过以下方式找到相关说明:
您基本上想要将状态A
添加到孤立分支中的第一个回购,然后使用带有rebase
和--root
标记的--onto
来移动旧历史记录A
的顶部。
不是使用状态A
创建孤立分支,而是将硬盘重置为状态A
,将repo 1添加为远程,获取repo 1的历史记录,然后将历史回归到状态A
:
# In repo 2
git reset --hard A
git add remote repo1 <path-or-url-to-repo1>
git fetch repo1
git checkout <branch-with-state-A>
git rebase --onto A --root repo1/<remote-branch-with-B-through-F>