一 、推送代码到远程仓库
推送结果:
直接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分支改完后的代码推送到test-release分支
合并后要推送到远程仓库
master分支有蓝色小点,表示远程仓库有人推送新代码,但是本地没有拉取
三、解决代码冲突
情况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到远程仓库
版权归原作者 洛文泽 所有, 如有侵权,请联系我们删除。