我有一个项目,我在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"
但是,当我在资源管理器中查看项目时,似乎没有任何变化。我是否在提取实验分支(与主分支相关)方面搞砸了什么?
答案 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/master
,myforkedrepo/foo
,myforkedrepo/experiment
等的所有分支。只需选择其中一个进行合并,例如
git merge myforkedrepo/foo
答案 1 :(得分:0)
假设您需要experiment/experiment
- 即“实验”回购中的“实验”分支 - 在originalrepo/master
分支上:
git checkout master
git merge experiment/experiment
git push origin master