很抱歉,如果标题不是太清楚,我不太清楚如何措辞,但我会尝试在这里更详细地解释。
早在10月份,我就开始着手一个新项目--用Python编写的Discord音乐机器人,因为我不喜欢当时能找到的现有自托管选项。我决定在GitHub上为它创建一个存储库,既可以供其他人使用,也可以使用git pull
在我用来托管它的示例的VPS上更容易地更新文件。
还没有人对它做过任何分叉或拉取请求,但最近我开始思考它,意识到我不完全确定将别人的代码集成到我的代码中的过程是什么?
比如,如果有人开始修复bug或开发他们自己的特性,做了一个PR,而我想接受它并与我的合并-但我也在我的本地文件中单独做一些工作,除了手动查看并决定如何集成之外,是否有任何适当的程序将他们的更改与我的合并?
2条答案
按热度按时间mefy6pfw1#
虽然git允许你设置远程repos到特性分支,但你通常只会把/ PR拉到某种集成分支。
一个常见的模式是有一个
master
和一个develop
分支。主分支是一个真理的来源,PR从develop
合并到master
。develop
是一个积分分支,它是从master
分支出来的,变化被PR 'd到develop
,然后最终PR' d到master
。开发人员应从
develop
中切出分支,进行更改,然后PR到develop
中进行评审。当你和一个同事在同一个项目中处理变更时,经常进行PR和整合是很重要的,这样其他人就可以将工作整合到他们自己的分支中。
经常在develop上执行git pull或者接收开发人员可能做出的最新更改是一种常见的做法。
所以,为了回答你的问题,你既可以集成到一个公共分支中,又可以将这些更改拉到你自己的特性分支中,经常进行更改,这样更容易合并。
有关常用的分支策略,请参见gitflow。
qkf9rpyu2#
这个问题也适用于更简单的情况,例如,当您在两台不同的计算机上进行更改时。
除了手动查看和决定如何集成之外,是否有任何适当的程序将他们的更改与我的更改相结合?
1.在大多数的合并中,并没有冲突处理,因为更改是在不同的文件中,即使更改影响到相同的文件,git也可以自动解决它们。
1.如果真的有冲突,而且你不知道该怎么做,那么你就需要自己解决它们。许多工具提供了一个三向合并来简化这个过程。