将git repo中的目录移动到另一个git仓库,保留部分提交历史记录

时间:2016-01-26 02:50:08

标签: git github

我将现有的git仓库(originalrepo)分拆到我自己的github上,让我们称这个仓库为myrepo

我在这里编辑了某个目录中的两三个文件,比如说mydir 但是,mydir并非直接位于myrepo,而是myrepo/dirA/dirB/mydir

现在我的小组已经设置了一个名为grouprepo的单独的git仓库,我想将我工作的文件移动到这个新的仓库。

我想直接将其移至grouprepo/mydir并保留提交历史记录,但仅保留我所做的提交(不包括来自originalrepo的数千次提交)并仅移动我所做的更改的文件到。

这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

你可以很简单地做到:

  • 将第二个来源添加到指向“旧”
  • 的新项目中
  • 选择您需要的相关提交

    # Add the reference to the old project where your commits are
    git remote add origin2 < url>
    
    # get all the data from all the repositories
    git fetch --all --prune
    
    # Now checkout the branch you want to add your previous commit to
    git checkout <branch>
    
    # "pick" the desired commits you want
    git cherry-pick commit1 commit2 ... commit
    

你已经完成了设置,你的提交(只有他们)在你当前的分支中。

cherry-pick

选择哪些提交(来自任何分支,甚至可以是松散提交)选择此提交并将其放在我当前的分支中,换句话说 - 从存储库中的任何位置进行任何提交将其带到我的分支

检索所有遥控器的所有内容

enter image description here

cherry-pick 当前分支的所需提交
(我的情况是存在冲突,但没有区别。)

enter image description here