php技术

phpstorm + git的一些总结

2019-03-03  本文已影响0人  张大胆_6a19

1、A自己开发一个分支

a)我们git pull拉去远程分支,并自动切换相应工作分支,比如feature;然后我们修改文件,不要commit


image.png b)保证远程feature没有其他commit,我们通过phpstorm,再次pull或者fetch一遍该feature,并且check out一个新本地featrue image.png

我们发现,当前Index.php文件依然为蓝色,并且内容不变

c)也就是说,如果当前分支没有进行commit,也就是远程feature和本地feature是相同版本的,那么无论pull和fetch,都不会改变当前编辑状态下任何文件,除非两个版本不相同,要么远程feature已经被提交过,或者本地commit过。

2、A和B同时开发一个feature分支

a)A feature开始开发,发现忘记提交了,然后pull最新的feature,发现如下提示


image.png

这个的意思是,你没有commit,但却产生了冲突,pull会破坏你的工作,所以你需要commit你的feature(因为这样才能保证你的代码安全)

果然再次pull的时候出现merge界面

image.png
image.png

IDE的意思是让我们通过,这种实时方式解决冲突;但我想通过这种方式知道有冲突,而不用这种方式解决冲突,于是我们abort;发现多了一个错误,我们可以Revert回到冲突之前状态


image.png

c)通过重新pull方式解决冲突。又发现了问题,意思是MERGE_HEAD exists;


image.png

我们可以通过reset head回到上一版本的head


image.png
可以解决冲突了

d)也可以用a的方式解决冲突

e)有个bug,解决玩完冲突的时候发现push不上去,我们需要改动一些代码,重新commit,commit时候可以选择把解决冲突的信息带上。

3、A和B不同分支(FeatureA,FeatureB),分别向develop PR

a)当A先向develop PR的时候,可以自动合并


image.png

b)当B先向develop PR的时候,此时如果A再向develop PR,发现冲突


image.png

c)A开始解决冲突

方式一:直接A的feature项目pull,解决冲突


image.png

方式二:
1、远程develop checkout as一个新分支develop


image.png

2、checkout feature分支,然后选择develop右键Merg into Current,意思是说把develop合并到feature。
3、commit一下,push一下,可以把develop删除了
4、好了,再次feature->PR->develop


image.png
上一篇下一篇

猜你喜欢

热点阅读