简单的github提取/合并没有拉远程分支?

时间:2011-03-11 15:55:32

标签: git github

我有一个项目,我在github上分叉到我的存储库。我对项目的“实验”分支进行了更改,将项目提交到我的fork。如果你去Github的我的分支,你可以看到实验分支正确提交。我想将实验分支与原始仓库(我有权使用)合并。我发出了以下命令:

git clone git@github.com:originalrepo/theproject.git
git checkout -b experiment origin/experiment
cd theproject
git remote add experiment git@github.com:chumofchance/theproject.git 
git fetch experiment
git merge experiment
"Already up to date"

但是,当我在资源管理器中查看项目时,似乎没有任何变化。我是否在提取实验分支(与主分支相关)方面搞砸了什么?

2 个答案:

答案 0 :(得分:3)

(作为一个非常小的观点,我猜你确实在cd theproject之前完成了git checkout。)

我认为你可能通过调用在github上引用你的存储库的遥控器和你想要合并的分支来创建一些混乱。

最后一行实际上只是将experiment分支合并到experiment分支中,这显然不会做任何更改。你可能反而想做类似的事情:

git merge experiment/foo

......而不是。

为了更清楚,我会将引用您的存储库的遥控器称为不同的东西,只是为了让分支和遥控器的想法更加分离。例如:

git clone git@github.com:originalrepo/theproject.git
cd theproject
git checkout -b experiment origin/experiment
git remote add myforkedrepo git@github.com:chumofchance/theproject.git 
git fetch myforkedrepo

在此阶段,git branch -r应该显示myforkedrepo刚刚被提取为myforkedrepo/mastermyforkedrepo/foomyforkedrepo/experiment等的所有分支。只需选择其中一个进行合并,例如

git merge myforkedrepo/foo

答案 1 :(得分:0)

假设您需要experiment/experiment - 即“实验”回购中的“实验”分支 - 在originalrepo/master分支上:

git checkout master
git merge experiment/experiment
git push origin master