GitHub上网络中的重复提交

时间:2011-11-21 22:39:28

标签: github git-rebase

我有什么:

https://github.com/kayuri/HNC/network

这两个存储库是同步的。

The repositories

我们如何使kayuri repo包含没有任何合并的线性提交历史记录,nponeccop repo根本不包含任何提交(因为它们都已经在上游kayuri repo中?

我的本​​地仓库是由clone的git nponeccop创建的,它有两个遥控器:origin(即nponeccop),我添加了kayuri后面。

我想重新定位nponeccop,以便从kayuri

的最后一次提交开始

我将kayuriorigin列为远程用户:

$ git remote -v
kayuri  git://github.com/kayuri/HNC.git (fetch)
kayuri  git://github.com/kayuri/HNC.git (push)
origin  git@github.com:nponeccop/HNC.git (fetch)
origin  git@github.com:nponeccop/HNC.git (push)

现在如果我git rebase kayuri我收到错误:

$ git rebase kayuri
fatal: Needed a single revision
invalid upstream kayuri

本地回购只有一个'主'分支。我做错了什么?

1 个答案:

答案 0 :(得分:1)

考虑历史时:

network graph

如果nponeccop包含kayuri上已有的提交,则在回购nponeccop时,只需简单:

git checkout master
git fetch kayuri 
git rebase kayuri/master
git push -f origin master 

应足以仅重播名为nponeccop的遥控器顶部的增量(即您将nponeccop添加为回购kayuri的遥控器。) 任何常见的提交都不会被重播两次,而且会被忽略。

请注意,这将在您自己的主分支中重写提交历史记录,因此push -f。如果您是几个处理nponeccop回购的人,那么对其他用户来说可能会有问题。