当前位置:   article > 正文

Git命令远程分支的合并和本地分支的同步_git 合并远程main分支到本地分分支

git 合并远程main分支到本地分分支

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


危楼高百尺,手可摘星辰。
不敢高声语,恐惊天上人。
——《夜宿山寺》




1. 合并命令

合并分支使用命令

git merge 分支名
  • 1

2. 分支环境

现在我们有一个项目,放在了Gitlab平台的一个远程仓库,此时远程仓库有默认的主分支main
我们现在在远程仓库上再创建一个远程分支dev-libai作为开发分支。

项目经理有一台电脑,使用拉取了远程仓库的main分支到他的电脑,此时他用main分支进行开发
先需要项目经理通过git merge origin/dev-libai将main分支合并到远程dev-libai分支

现在自己有一台电脑,拉取了Gitlab上的这个项目的远程dev-libai分支,在自己电脑上的本地分支我们取名dev-libai

分支情况如下:
本地分支有main和dev-libai
远程分支(即远程项目仓库的分支)有:origin/main和origin/dev-libai

3. 合并分支(远程、本地代码同步)

首先项目经理在他电脑上修改了他本地的main分支代码,然后提交到了远程仓库的main分支上,现在我们想从远程main分支合并到我们自己电脑本地的dev-libai上,实现代码同步,该如何合并?

3.1 失败的做法

我尝试了直接从远程main分支合并到我自己电脑本地的dev-libai分支上,使用的命令如下:
先确保自己电脑当前分支是远程main分支,也就是当前分支需为origin/main

git status
  • 1

如果不是需要使用命令切换到origin/main分支上

git checkout origin/main
  • 1

然后将远程main合并到本地dev-libai分支

git merge dev-libai
  • 1

结果本地代码中并没有项目经理提交到main分支的代码。
也就是说使用的上面的命令,直接将远程main合并到本地dev-libai分支,是不可取的。

3.2 成功的做法

merge是将两个远程分支合并到一个提交上,即不管是合并到那个分支,都是将两个分支的不同点合并到一个相同的点,这个点上两个分支实现了统一,即同步代码。

如何实现同步远程分支到本地,拉取即可,即使用pull命令将远程拉取到本地
但是根据我们前面的场景,如何将远程main分支同步到本地dev-libai分支,如下两种
第一种是在本地dev-libai分支上直接拉取main分支的代码覆盖到本地
第二种是将远程main分支的改动合并到远程dev-libai分支,然后再在本地dev-liubai分支拉取远程dev-libai分支的代码

3.2.1 远程main合并到本地dev-libai

直接从远程main分支拉取代码到本地dev-libai分支上即可实现将项目经理修改的代码同步到自己电脑上

git status
  • 1

确保当前分支是本地的dev-libai分支,如果不是需切换当前分支

git checkout dev-libai
  • 1

拉取main分支到本地dev-libai分支

git pull oririn main
  • 1

需要注意的是,此时的本地dev-libai分支代码和远程main分支代码同步,但远程的dev-libai分支并未更新,需要执行更新命令将远程dev-libai分支同步

git add .
  • 1
git commit -am "update dev-libai"
  • 1
git push origin dev-libai
  • 1

以上步骤结束后,远程main同步到本地dev-libai,且远程dev-libai与远程main也同步了,后续还是可以拉取远程dev-libai来更新代码

3.2.2 远程dev-libai合并到本地dev-libai

另一种同步项目经理修改的远程mian分支的代码的方法是,先将远程面分支的代码同步到远程dev-libai,然后再从远程dev-libai拉取到本地dev-libai
将当前分支切换到远程main分支

git checkout origin/main
  • 1

将远程main分支合并到远程dev-libai分支

git merge origin/dev-libai
  • 1

然后切换当前分支到本地dev-libai

git checkout dev-libai
  • 1

最后从远程dev-libai拉取代码同步

git pull origin dev-libai
  • 1

这样看来,不如直接从远程分支main拉取到本地,然后再本地推送到远程dev-libai

4. 总结

远程分支的合并使用merge,本地分支如果只在同一个机器,可以进行合并,如果是不同机器只能从远程拉取更新同步。


感谢阅读,祝君暴富!


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/925018
推荐阅读
相关标签
  

闽ICP备14008679号