84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
在公司git服务器上建了一个项目,然后建立一个分支 b1然后添加了一个github的master git remote add r1 https://github.com/xx/xx
怎么合并本地分支b1和远程r1分支呢?
补充编辑,原始需求是在一个github活跃的项目上面做二次开发,又要将代码放到公司git上,或者大家有什么好的建议? 谢谢
如果要合并两个分支的话,起码要保证二者具有相同的祖先,按照楼主的补充二者的确是有相同的祖先,所以是可以合并的。这样的话我的方案是,先将github仓库中的项目使用git clone命令克隆的本地,然后使用git remote add ...命令添加公司git服务器上的仓库为远程仓库;接着在本地使用git pull命令进行拉取与合并,当然git pull命令后要添加远程分支的url别名和分支名;最后如果冲突解决完毕而且合并完成就可以推送到公司的远程仓库了。我觉得像这样先在本地的另一个仓库进行合并可能更安全一点儿。当然,因为我也没实际处理过这样的问题,所以如果我的方案没有成功,希望楼主可以跟我反馈下问题出在哪儿。
git clone
git remote add ...
git pull
git push的时候可以选择哪个远程服务器,所以先从github上拉分支,解决冲突,再push到公司分支的master上,等公司的人检查合并,应该没有问题
git push
按题主的说法,r1 其实并不是一个 branch,而是一个 remote。就先假设你要合并本地的 b1 分支和 r1 的master 分支吧。
r1
既然你已经加了 r1,那么你需要做的事儿就是:
首先切换到 b1。命令是 git checkout b1
git checkout b1
获取 r1 master branch的 HEAD 指针。命令是 git fetch r1
git fetch r1
把 r1 master branch 上的内容应用到本地。可以用 git merge r1/master,也可以 git rebase r1/master。前者生成非线性的历史纪录,后者生成线性的。
git merge r1/master
git rebase r1/master
然后你再 push 到公司的库,就搞定了
顺便:git pull = git fetch + git mergegit pull = git fetch + git mergegit pull --rebase = git fetch + git rebasegit pull --rebase = git fetch + git rebase
git fetch
git merge
git pull --rebase
git rebase
如果要合并两个分支的话,起码要保证二者具有相同的祖先,按照楼主的补充二者的确是有相同的祖先,所以是可以合并的。
这样的话我的方案是,先将github仓库中的项目使用
git clone
命令克隆的本地,然后使用git remote add ...
命令添加公司git服务器上的仓库为远程仓库;接着在本地使用git pull
命令进行拉取与合并,当然git pull
命令后要添加远程分支的url别名和分支名;最后如果冲突解决完毕而且合并完成就可以推送到公司的远程仓库了。我觉得像这样先在本地的另一个仓库进行合并可能更安全一点儿。当然,因为我也没实际处理过这样的问题,所以如果我的方案没有成功,希望楼主可以跟我反馈下问题出在哪儿。
git push
的时候可以选择哪个远程服务器,所以先从github上拉分支,解决冲突,再push到公司分支的master上,等公司的人检查合并,应该没有问题按题主的说法,
r1
其实并不是一个 branch,而是一个 remote。就先假设你要合并本地的 b1 分支和 r1 的master 分支吧。既然你已经加了 r1,那么你需要做的事儿就是:
首先切换到 b1。命令是
git checkout b1
获取 r1 master branch的 HEAD 指针。命令是
git fetch r1
把 r1 master branch 上的内容应用到本地。可以用
git merge r1/master
,也可以git rebase r1/master
。前者生成非线性的历史纪录,后者生成线性的。然后你再 push 到公司的库,就搞定了
顺便:
git pull
=git fetch
+git merge
git pull
=git fetch
+git merge
git pull --rebase
=git fetch
+git rebase
git pull --rebase
=git fetch
+git rebase