关于git日常开发合并分支问题

新手上路,请多包涵

目前有线上分支master 测试分支dev 自己的开发分支是从master上开出来的

如果其他同事上线了代码,我需要更新到自己的分支。则切到master,pull,更新后回到自己分支,将master分支merge到自己的分支,即完成了同步更新线上的最新代码到自己分支

然后,我在我分支开发完某个功能后,需要提到测试环境。 则切到测试分支dev,merge我的开发分支,这个时候,暂存区会有很多除了我改动的其他文件,甚至还有一些冲突。

这些文件基本上都是已经其他人的分支合并到测试分支dev所改动到,即这些文件的代码早就已经在dev了,一些冲突文件是因为测试dev对master相比下又更新了某些代码。

简易流程:

自己分支 合并至->测试dev, (测试没问题后,准备上线). 自己分支 合并至->线上master

如果其他同事有上线,则matster会提示拉取,所以
切换到master(pull),切换到自己分支, 将master 合并至->自己分支

此时我的开发结束,准备提交到测试环境
自己分支 合并至->测试dev , 这时就有了一些我没改动过到其他文件 有可能还有一些冲突文件

把master合并到自己分支,自己分支又合并到测试dev,这个感觉就像,把master合并到了dev,所以会监测一些文件不同的改动。 毕竟测试分支dev的代码是最全最新的

我想问的是,这些我没改动的文件 和 冲突文件,我可以丢弃吗?这样我就可以我的分支只提交我所改动的文件。 毕竟那些已经在测试环境的文件,我再提交也没有意义吧?

阅读 2.2k
1 个回答
自己分支 合并至->测试dev , 这时就有了一些我没改动过到其他文件 有可能还有一些冲突文件

如果冲突的这一部分内容不是你写的,那你可以让写着一段代码的人把 master 合并到他的分支,然后再把他的分支合并到 dev。

因为这块是别人修改的,你去合并的话,如果不清楚业务逻辑可能会把代码给别人合并丢了。

我想问的是,这些我没改动的文件 和 冲突文件,我可以丢弃吗?

不可以,错误的冲突解决在最终合并到 master 时可能会导致代码丢失。

遵守最基本的原则,即谁修改谁负责。

如果 dev 乱了,严重偏离了 master(曾经错误的解决冲突导致后面冲突实属太多),最简单的办法就是删除 dev 分支,从新从 master 创建 dev 分支,然后开发人员对正在进行的开发任务从新合并代码到 dev。

当然,这个操作可能存在一些问题,比如,每个人都需要要删除自己本地的 dev 分支,从新拉取。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题