Issue1
una twig llamada Issue1
desde master. Después de completar Issue1
, creé otro problema llamado Issue2
desde el maestro, tenga en count que no lo Issue1
encima de Issue1
. Issue1
pero si lo creo encima de Issue1
podría haber un problema mientras Issue2
, entonces los commits de ambas twigs serán empujados a la producción (master). Issue1
file y creé methods comunes o algo que también se requiere para Issue2
. Ahora, en ese caso, no tengo un código de Issue1
. Entonces, desde arriba, es bueno crear Issue2
sobre Issue1
pero de esa manera mi requisito no está cumpliendo su propósito. Leí sobre la recolección alegre. No estoy seguro si es aplicable aquí.
Además, si modifiqué index.php dentro de Issue1
y agregué el enlace y en Issue2
modifiqué el mismo file y agregué otro, habrá conflicto. Así que no puedo evitarlo, aunque sabía que había modificado este file en ambas twigs. Tengo que lidiar con la resolución de los conflictos, no puedo evitarlo hasta que lo cree sobre Issue1
, pero mi segundo propósito sufrirá En tal caso.
¿Cuál sería la mejor manera de resolver esto? Quiero que mis dos propósitos se resuelvan.
Considera hacer 3rd branch, fe Feature1
o Common1
, y escribir código común allí. Luego puede fusionar esta twig tanto en Issue1
como Issue2
(y master, ofc).
Creo que es muy git-way – el código relacionado con el tema está en las twigs de Issue y el código común está en la twig Common.
Edit1: la estructura final que propongo:
master | Common / \ Issue1 Issue2
En caso de que ya tengas problemas, puede verse así:
master / | \ Issue1 Common1 Issue2 | / | \ / Merge | Merge | | | Issue1 updated Issue2 common
Edit2: Otra explicación.
Tienes maestro
var x = 1; var y = 2; print(x+y);
digamos que su Issue1 debería verse así:
var x = 1; var y = 3; printLine(x+y); function printLine (x) { return print(x + 'line'); }
y su Issue2 debería verse así:
var x = 1; var y = 4; printLine(x+y); function printLine (x) { return print(x + 'line'); }
entonces haces la twig Common1 así:
var x = 1; var y = 2; printLine(x+y); function printLine (x) { return print(x + 'line'); }
Entonces, su flujo de trabajo se verá así:
git checkout master git checkout -b common1 //make changes as in Common1 git commit -am common1 git checkout issue1 git merge common1 git checkout issue2 git merge common1 //then you can work on issues. fe making changes in issue1 git checkout issue1 //code, code git commit -am issue1 //if you want to update common methods git checkout common1 //update git commit -am updated-common1 git checkout issue1 git merge common1 git checkout issue2 git merge common2