当前位置:   article > 正文

IDEA,VSCode 推送代码到远程仓库;合并代码到不同分支;解决本地和远程的代码冲突_vscode 合并代码

vscode 合并代码

一 、推送代码到远程仓库

在这里插入图片描述

推送结果:
直接Push,会推送远程仓库失败,得到提示 wms: Everything is up-to-date
要先commit再push,才能成功。
在这里插入图片描述

在这里插入图片描述

二、代码合并的两种方式

将一个分支更改的部分推送到另一个分支

方法一: 推荐cherry-pick方式 ,部分合并
例如:dev分支修改了两个实体类后,将修改的结果同步到master分支。但是发布前发现其中一个实体类有bug不能发布到master分支。

转到master分支,用cherry-pick可以选中其中符合的一个实体类同步到master分支,之后push即可

方法二:megre 方式不推荐
例如:将dev分支修改的部分合并到master分支,使用megre就会将dev变动的全部内容都合并到master分支

方式一:
用cherry-pick方式,将master分支改完后的代码推送到test-release分支
切换到test-release分支后要先拉取最新代码,第3步也可以是选中提交记录后右键选择Cherry-pick,
最后Push。
在这里插入图片描述

方式二:
用merge方式,将master分支改完后的代码推送到dev分支(master分支在本地改完后已经推送到了远程)。
1、切换到目标分支dev
2、点击dev, 在本地仓选中master分支,点击Merge’master’ into dev
3、push,将dev合并master的结果推送到远程的dev
在这里插入图片描述

在这里插入图片描述

master分支有蓝色小点,表示远程仓库有人推送新代码,但是本地没有拉取
在这里插入图片描述
怎么将fork仓的dev分支的改动合并到uat分支,并且将改动推送到远程仓的uat分支呢?
项目有三个仓库:公共仓,从公共仓库fork后得到的fork仓库,将fork仓在IDEA克隆得到的本地仓。
1、本地仓在dev分支改完代码,commit到本地
2、fork仓切换dev分支并刷新,在本地仓拉取fork仓的dev分支最新代码,之后本地的dev分支改动推送到远程fork仓的dev分支
3、fork仓切换到uat分支并刷新,在本地仓拉取fork仓的uat分支最新代码(建议本地新克隆一个uat分支仓库,免得切换分支出错)
4、本地切换到目标分支即uat分支,点击右下角uat且右键, 在Local Branches中选中dev分支,点击Merge’dev’ into ‘uat’
5、点击push,将本地uat合并到本地dev的结果推送到远程fork仓的uat分支
6、在fork仓新建Pull Requests, 源分支和目标分支都选择uat分支,提交后等待项目管理员审核,就可以将自己fork仓的uat分支改动的结果推送到公共仓的uat分支了。
注:本地新克隆一个uat分支仓库,如果在Local Branches中没有dev分支,那就在Remote Branches下check out dev就有了
在这里插入图片描述

三、解决代码冲突

情况1∶只要之前本地与远程相同,现在本地没有改变,远程仓库改变了,点击merge后直接pull拉取远程仓库代码,无需代码冲突解决;
拉代码会提示Update Project ,Merge incoming changes into the current branch
合并远程的改变到本地目前的分支。选择Don’t show again后就不会出现这个提示。
在这里插入图片描述

同一个文件,本地改变了没提交到本地仓库,远程该文件没改变,拉取远程代码。该文件在本地是保持改变的样子,不会被没改变的远程影响。

情况2: 本地改变后,远程仓库没有改变,拉取远程仓库无代码冲突。将本地推送到远程也没有代码冲突。

情况3∶多人开发时,相同的多个文件,本地改变了,同时远程仓库也改变了,要解决本地和远程的代码冲突。按照三步走:先绿色小对勾commit,将自己更改的代码提交到本地;再拉取远程仓库代码会弹出Conflicts,点击Merge解决远程和本地的冲突;最后push绿色向上箭头,将解决冲突后得到的代码到远程仓库。

一定要按照三步走来提交代码。
commit到本地之前,建议仔细查看自己更改的部分是否被选中了,要注意commit的文件是不是自己要提交的文件:
在这里插入图片描述

别人更改这些文件后提交到了远程仓库,自己也在本地更改了这些文件,自己commit后,拉远程代码到本地。这些代码就会发生远程和本地的冲突。这就需要小心合远程改变的代码到本地了。

情况3提示弹窗:
在这里插入图片描述

在这里插入图片描述
commit后,拉取远程代码,解决本地和远程冲突:

在这里插入图片描述

情况4:
这个也不算冲突。
文件1自己本地改了,文件2远程别人改了。自己提交文件1,commit后直接push,会提示merge,点击深色按钮后,会将远程改了的文件2保存到本地。
所以推荐3步走提交代码: 先commit提交代码到本地, 再pull拉取远程最新代码, 最后push推送代码到远程。

四、本地新建分支提交到远程仓库

在这里插入图片描述

五、本地拉取远程仓库代码

在这里插入图片描述

六、VSCode拉取,推送,解决代码冲突

6.1 拉取远程仓库项目
在这里插入图片描述

6.2 推送本地项目到远程仓库
在这里插入图片描述

6.3 解决本地和远程仓库的代码冲突
实际开发中,本地改变,远程也改变。
本地改变后,直接点+ stage change,输入描述,点击Commit,最后想push远程仓库,结果发生冲突。
解决方法:
要先拉取远程仓库,结果如下
请添加图片描述
注意:此处写描述没有用,最后推送到码云的动态显示是之前直接推送时写的描述
在这里插入图片描述
冲突解决
请添加图片描述
推送远程
请添加图片描述

七、总结

总的来说,实际开发中需要,切换到开发分支,先拉取远程开发仓库最新代码到本地开发分支,再进行开发,之后推送到远程开发分支;
切换到测试环境分支,先拉取远程测试仓库最新代码,用cherrypick方式将开发分支改变的部分提交到测试分支,之后将本地测试 分支推送到远程。最容易出现代码冲突的场景是情况3。一般来说实际开发中,多人对多个文件进行修改,情况2这种本地修改后直接推送到远程仓库,没有代码冲突的少见。
提交代码时建议: commit后,拉最新代码,没冲突了就提交push到远程仓库

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

闽ICP备14008679号