更改现有的git仓库以与远程仓库共享历史记录

时间:2018-07-21 18:03:08

标签: git

因此,我分叉了一个公共git repo,然后创建了一个新的本地git repo,将文件复制到其中,提交了约一百次,现在我想将本地git repo更改为原始repo的分支。并重新签署我的所有提交。

这可能吗?

我想我应该能够回到我的语言环境存储库中的第一个提交,然后以某种方式将原始的公共git存储库拉到一个新的提交中,然后将我的所有本地提交重新建立在那个。

但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

  

创建了一个新的本地git repo,将文件复制到其中

正确的举动是克隆叉子。

  

我想将本地git repo更改为原始repo的分支,然后重新签名所有提交

实际上,请勿触摸您当前的本地存储库。

在本地克隆您的GitHub fork仓库(第二个本地仓库),并将您的提交从第一个仓库重新部署到专用分支上:

cd second
git checkout -b myBranch
git remote add first ../first

({../first是当前第一个存储库的第二个存储库本地文件夹的相对路径)

git fetch first.
git rebase --onto myBranch $(git rev-list --max-parents=0 first/master) first/master

(这里我假设您将提交放在master分支上。)
(请参阅“ How to show first commit by 'git log'?”)

这将重播您第一次回购中的第一个回合之后的所有提交( )(假设第一个提交是复制文件的提交,然后再开始添加自己的提交),直到您的第一个存储库的最后一次提交到新的专用分支上。

将该newBranch推入您的fork,就一切就绪。