Buscar..


Sintaxis

  • git merge another_branch [opciones]
  • git merge --abort

Parámetros

Parámetro Detalles
-m Mensaje a ser incluido en el merge commit
-v Mostrar salida detallada
--abort Intenta revertir todos los archivos a su estado
--ff-only Anula instantáneamente cuando se requiere un merge-commit
--no-ff Fuerza la creación de un merge-commit, incluso si no fuera obligatorio
--no-commit Finge que la fusión no permitió la inspección y el ajuste del resultado
--stat Mostrar un diffstat después de completar la fusión
-n / --no-stat No mostrar el diffstat
--squash Permite una única confirmación en la rama actual con los cambios combinados

Fusionar una rama en otra

git merge incomingBranch

Esto combina la rama incomingBranch la rama con la rama en la que se encuentra actualmente. Por ejemplo, si actualmente está en el master , la rama incomingBranch se fusionará con el master .

La fusión puede crear conflictos en algunos casos. Si esto sucede, verá el mensaje Automatic merge failed; fix conflicts and then commit the result. Deberá editar manualmente los archivos en conflicto, o para deshacer su intento de combinación, ejecute:

git merge --abort

Fusión automática

Cuando las confirmaciones en dos ramas no entran en conflicto, Git puede fusionarlas automáticamente:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Abortando una fusión

Después de iniciar una combinación, es posible que desee detener la combinación y devolver todo a su estado anterior a la combinación. Utilice --abort :

git merge --abort

Mantener los cambios de un solo lado de una fusión

Durante una fusión, puede pasar --ours o --theirs a git checkout para tomar todos los cambios para un archivo de un lado o el otro de una combinación.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

Fusionar con un commit

El comportamiento predeterminado es cuando la combinación se resuelve como un avance rápido, solo actualice el puntero de la rama, sin crear una confirmación de combinación. Utilice --no-ff para resolver.

git merge <branch_name> --no-ff -m "<commit message>"

Encontrar todas las ramas sin cambios fusionados

A veces, es posible que haya ramas alrededor que ya hayan fusionado sus cambios en maestro. Esto encuentra todas las ramas que no son master que no tienen confirmaciones únicas en comparación con la master . Esto es muy útil para encontrar ramas que no se eliminaron después de que el RP se fusionara en el maestro.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow