В настоящее время я тестирую с использованием веток функций в моем потоке 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
. Итак, Питер делает клон current stable version
для новой ветви функций под названием features/cat
. Питер изменит весь код current stable version
.
Питер клонирует текущую стабильную версию в 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']);
}
Мы предполагаем, что Питер не полностью создал сценарий, и теперь я попросил Сьюзен создать функцию run
для current stable version
для собаки.
Затем Сьюзен делает клон current stable version
в новую ветвь функций под названием features/dogrun
Сьюзен: Особенности / 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();
}
Допустим, Сьюзен уже закончила сборку run feature
, и эта функция уже в производстве.
Сейчас Peter: features/cat
уже находится в стадии подготовки и готов к производству. как объединить Peter: features/cat
и Susan: features/run
? между функциями весь код изменился и не может быть объединен. если Peter: features/cat
слиться с главной веткой (производство) первым, Susan: features/run
больше не будет работать.
Этот пример является простым сценарием, потому что в моем реальном случае много одинаковых файлов будут изменены другим, а коды будут более сложными.