场景描述:fork大神的代码后,本地启动可能会做配置更改,好不容启动好了,大神那更新了(新增功能,bug修改),这时候怎么把大神的代码同不来,而不影响自己的更改?
搜索了半天也没有几个很有效的帖子,只能自己试了,以nutzwk,‘鲨总’的源码实验,其实随便自己建个项目也一样(主要是默默推荐下nutzwk框架---后头有个团队,在做开源)。
动手!
1,源码上新增两个类文件TestService和对应实现类TestServiceImpl
2,将对应的变更文件上传(commit + push)
3,远程仓库(网页版)是看得到两个新增文件的。
4,这时候,场景出现了。大神更新了下版本,我又想同步人家的代码,于是需要强制同步:如下图,点击确定。
5,同步结束后,网页版里再找刚才提的两个文件,不见了。。。是的,确实不见了(理所应当,本来人家的源码里也是没有这两个文件,强制同步别人代码,当然跟别人代码一致了)。
6,这时候去idea,同步下远程代码(已经跟fork的原始代码一致了)
7,同步的结果就是:并没有任何更新,(这里是因为我实验之前已经通过过,第一次同步的时候,更新版本的代码会有更新日志)
8,这时候,再看看自己的代码,俩文件还在~,是的,还在~~,刷新下项目,还在~~,没错,这是因为这来文件已经提交到本地的仓库了,更新的是远端的,这时候本地仓库与远程仓库的差异就是你自己改动的代码
9,这时候更改的列表里是没有记录的,因为之前改动的已经commit了。
10,再看看push弹窗,这里有之前的提交记录,如果这个时候再次push,就会把自己的改动,再次推到远端仓库
11,这里测试的场景,是新增文件,并么有测试存在冲突的情况,比如,你改动一个函数,大神也改动了。这时你的改动远端被覆盖了,同步到本地后,本地是否会存在冲突?
原文地址:https://www.cnblogs.com/havenenjoy/p/10119743.html