我目前正在使用git流上的功能分支进行测试。 假设我有一个当前稳定的脚本。
开发人员分支上狗的当前稳定版本
file 1
---------
function bark() {
return 'the dog is barking';
}
function walk() {
return 'the dog is walking'
}
file 2
---------
Action
<button type="submit" name="button1">Play</button>
<button type="submit" name="button2">Play</button>
if($_POST["button1"]) {
bark();
}
if($_POST["button2"]) {
walk();
}
然后,要求彼得添加与cat
相同的新功能current stable version for dog
。因此,Peter对新功能分支current stable version
进行了features/cat
的克隆。彼得将修改所有current stable version
代码。
Peter将当前稳定版本克隆到Features / cat,并且已经修改了当前稳定版本
file 1
-----------------------------
function animalSound($animals = []) {
$result = [];
foreach($animals as $animal) {
if($animal == 'cat') {
$sound = 'meowing';
} else if($animal == 'dog') {
$sound = 'barking';
}
$result[] = 'The ' . $animal . ' is ' . $sound.
}
return $result;
}
function animalWalk($animals = []) {
$result = [];
foreach($animals as $animal) {
$result[] = 'The ' . $animal . ' is walking';
}
}
file 2
---------
Action
<button type="submit" name="button1">Play</button>
<button type="submit" name="button2">Play</button>
if($_POST["button1"]) {
bark(['dog', 'cat']);
}
if($_POST["button2"]) {
walk(['dog', 'cat']);
}
我们假设Peter尚未完全构建脚本,现在我要求Susan为狗的run
构建current stable version
功能。
然后Susan将current stable version
克隆到名为features/dogrun
的新功能分支中
苏珊:功能/运行方式
file 1
----------------
function bark() {
return 'the dog is barking';
}
function walk() {
return 'the dog is walking'
}
// add run feature
function run() {
return 'the dog is running';
}
file 2
---------
Action
<button type="submit" name="button1">Play</button>
<button type="submit" name="button2">Play</button>
// menambah fitur run
<button type="submit" name="button3">Play</button>
if($_POST["button1"]) {
bark();
}
if($_POST["button2"]) {
walk();
}
// add run feature
if($_POST["button3"]) {
run();
}
让我们说Susan已经完成了run feature
的构建,并且该功能已经投入生产。
现在Peter: features/cat
已经在暂存分支中,可以开始生产了。如何合并Peter: features/cat
和Susan: features/run
?在功能之间,所有代码都已更改,无法合并。如果Peter: features/cat
首先合并到主分支(生产),则Susan: features/run
将不再起作用。
此示例案例只是简单的脚本,因为在我的真实案例中,很多相同的文件会被另一个文件修改,并且代码会更复杂。
答案 0 :(得分:1)
如果分支涉及冲突,则不应合并。
Peter准备就绪后,应在最新的master
生产分支上重置他的功能/猫,以便在他的工作站上本地重播他的features/cat
提交。
在那里(在彼得的环境中)会发生冲突,并在那里解决(由彼得解决)
随后对master
的合并将是微不足道的。