¿Cómo obtener" sus " cambios en medio de una rebase de Git conflictiva?


Tengo ramas en conflicto, rama 2 ramificada de rama 1.

Digamos que cuando rebase branch2 en branch1 actual, mientras resuelvo conflictos, decido tomar algunos (no todos) de "sus" (es decir, branch1) archivos tal cual. ¿Cómo hago eso?

Lo intenté:

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
Author: Ondra Žižka, 2011-11-16

2 answers

Desea utilizar:

git checkout --ours foo/bar.java
git add foo/bar.java

Si rebase una rama feature_x contra master (es decir, corriendo git rebase master mientras está en la rama feature_x), durante el rebase ours se refiere a master y theirs a feature_x.

Como se señala en los documentos de git-rebase :

Tenga en cuenta que una fusión de rebase funciona al reproducir cada confirmación desde el rama de trabajo en la parte superior de la rama. Debido a esto, cuando un conflicto de fusión ocurre, el lado reportado como el nuestro es el hasta ahora serie rebasada, comenzando con , y el suyo es el trabajo Sucursal. En otras palabras, los lados se intercambian.

Para más detalles lea este hilo.

 372
Author: iGEL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-02 22:20:56

Si desea extraer un archivo en particular de otra rama, simplemente haga

git checkout branch1 -- filenamefoo.txt

Esto extraerá una versión del archivo de una rama al árbol actual

 1
Author: Adrian Cornish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-16 06:09:49