首页  >  问答  >  正文

怎么合并github master 和 自己从公司git上checkout的分支?

在公司git服务器上建了一个项目,然后建立一个分支 b1
然后添加了一个github的master
git remote add r1 https://github.com/xx/xx

怎么合并本地分支b1和远程r1分支呢?

补充编辑,原始需求是在一个github活跃的项目上面做二次开发,又要将代码放到公司git上,或者大家有什么好的建议? 谢谢

漂亮男人漂亮男人2727 天前671

全部回复(3)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-02 09:46:44

    如果要合并两个分支的话,起码要保证二者具有相同的祖先,按照楼主的补充二者的确是有相同的祖先,所以是可以合并的。
    这样的话我的方案是,先将github仓库中的项目使用git clone命令克隆的本地,然后使用git remote add ...命令添加公司git服务器上的仓库为远程仓库;接着在本地使用git pull命令进行拉取与合并,当然git pull命令后要添加远程分支的url别名和分支名;最后如果冲突解决完毕而且合并完成就可以推送到公司的远程仓库了。
    我觉得像这样先在本地的另一个仓库进行合并可能更安全一点儿。当然,因为我也没实际处理过这样的问题,所以如果我的方案没有成功,希望楼主可以跟我反馈下问题出在哪儿。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-02 09:46:44

    git push的时候可以选择哪个远程服务器,所以先从github上拉分支,解决冲突,再push到公司分支的master上,等公司的人检查合并,应该没有问题

    回复
    0
  • 为情所困

    为情所困2017-05-02 09:46:44

    按题主的说法,r1 其实并不是一个 branch,而是一个 remote。就先假设你要合并本地的 b1 分支和 r1 的master 分支吧。

    既然你已经加了 r1,那么你需要做的事儿就是:

    1. 首先切换到 b1。命令是 git checkout b1

    2. 获取 r1 master branch的 HEAD 指针。命令是 git fetch r1

    3. 把 r1 master branch 上的内容应用到本地。可以用 git merge r1/master,也可以 git rebase r1/master。前者生成非线性的历史纪录,后者生成线性的。

    然后你再 push 到公司的库,就搞定了

    顺便:
    git pull = git fetch + git mergegit pull = git fetch + git merge
    git pull --rebase = git fetch + git rebasegit pull --rebase = git fetch + git rebase

    回复
    0
  • 取消回复