J'ai des branches en conflit, branche2 dérivée de branche1.
Disons que lorsque je rebase branch2
sur le branch1
actuel, tout en résolvant les conflits, je décide de prendre certains (pas tous) de "leurs" fichiers (c'est-à-dire branch1
) comme si. Comment je fais ça?
J'ai essayé:
git checkout branch1:foo/bar.Java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.Java
git checkout refs/heads/branch1:foo/bar.Java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.Java
Vous voulez utiliser:
git checkout --ours foo/bar.Java
git add foo/bar.Java
Si vous rebassez une branche feature_x
contre master
(c’est-à-dire que vous exécutez git rebase master
sur une branche feature_x
), lors du rebasage ours
fait référence à master
et theirs
à feature_x
.
Comme indiqué dans le docs git-rebase :
Notez qu'une fusion de refonte fonctionne en relisant chaque validation de la branche active située au-dessus de la branche. Pour cette raison, lorsqu'un conflit de fusion survient, la partie signalée comme la nôtre est la série jusqu'ici rebasée, commençant par <en amont>, et leur branche active. En d'autres termes, les côtés sont échangés.
Pour plus de détails lisez ce fil .
Si vous voulez extraire un fichier particulier d’une autre branche, faites simplement
git checkout branch1 -- filenamefoo.txt
Cela va tirer une version du fichier d'une branche dans l'arborescence actuelle