前提:
当你从一个分支上创建新分支的时候,你新分支的上的代码是和源分支上的代码保持一致的,当你从新分支拉代码下来会创建本地仓库的同名分支,并建立链接,然后你在本地进行开发
具体可以参考这一篇对vscode使用的理解
起因:
在公司开发时,需要拉新的分支去开发,当你在开发完时,如果你所拉下来的代码不是最新的(也就是在你之前其他同事把自己的代码合并到了源分支上,但是你也要将新分支合并到的源分支上),去提mr的时候会有冲突。
在解决这个问题之前我们先来看看git fetch,git merge,git pull,这几个命令
1.先谈谈git fetch:远程跟踪分支已更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。
对于git fetch具体用法,上面的链接的文章里有链接,所以在这里只讲常用的方法<br>
更新所有分支,命令可以简写为:
git fetch
上面命令将某个远程主机的更新的信息,全部取回本地。默认情况下,git fetch取回所有分支的更新。如果只想取回特 定分支的更新,可以指定分支名,如下所示
git fetch <远程主机名> <分支名>
比如,取回origin主机的master分支。
git fetch origin master
2.git merge命令用于将两个或两个以上的开发历史加入(合并)一起。
将分支dev合并到当前分支中,自动进行新的提交:
git merge dev
3.git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样
git pull origin next:master
一般我们都会直接写git pull这是因为当你本地的分支和你远程的分支是唯一的追踪分支的关系的话,
可以省略后面的参数,相当于在本地的master分支上,git pull origin next:master
- 对于git pull的理解你可以看成是执行了git fecth 和 git merge,git fetch 是将远程仓库代码更新的信息,同步到本地,git merge 是通知本地的分支要更新,也就是合并远程分支完成更新
现在我们来解决这个问题
-
当你们的代码发生冲突的时候,你提mr是会告诉你有冲突的,这个时候必须手动解决冲突然后再提merge request,原理可以理解,比方说你现在在master分支上提mr,dev分支现在和master分支有冲突,然后你选择修改master的冲突内容(改成我们所希望的内容)然后commit,修改后相当于master分支领先dev分支一个提交,就是相当于完成了合并。
-
其实,上面的命令与这个问题没有太大关系,那我为什么还要说呢?是因为我要讲另一个和这个相识的问题,就是你在本地开发的时候,开完完成了要push你的代码到远程仓库的时候,你会发现远程的代码是被其他人给提交了代码,这个时候你就应该git pull更新你的代码
最后贴一下启发我的文章链接www.yiibai.com/git/git_rem…
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!