Tengo un repositorio de git con muchas ramas, algunas de ellas ya fusionadas y otras no. Dado que el número de sucursales es bastante grande, ¿cómo puedo saber qué ramas no se han fusionado aún? Evitaría hacer una fusión de pulpo para volver a mezclar todas las ramas.git encontrar sucursales no fusionadas
Respuesta
Prueba esto:
git branch --merged master
Se hace lo que dice en la lata (listas de ramas que se han fusionado en master
). También puede levantar la inversa con:
git branch --no-merged master
Si no se especifica master
, por ejemplo ..
git branch --merged
continuación, se le mostrará las ramas que se han fusionado en la corriente HEAD
(por lo si está en master
, es equivalente al primer comando; si está en foo
, es equivalente a git branch --merged foo
).
También puede comparar ramas ascendentes especificando la bandera -r
y una referencia para comprobar en contra, lo que puede ser local o remoto:
git branch -r --no-merged origin/master
Si una rama se fusionó ya, la fusión no tendrá otra vez hacer nada. Para que no tenga que preocuparse por la "fusión" de las sucursales que ya están fusionadas.
Para responder a su pregunta, simplemente puede emitir
git branch --merged
a ver las ramas fusionadas o
git branch --no-merged
para ver las ramas sin combinar. Su rama actual está implícita pero puede especificar otras ramas si lo desea.
git branch --no-merged integration
le mostrará ramas que aún no se fusionaron en integration
rama.
También puede utilizar el parámetro -r para mostrar sucursales remotas que no se fusionaron en master:
git branch -r --merged master
git branch -r --no-merged
o '-a' para ver tanto remoto como local al mismo tiempo –
El guión continuación encontrará todos los origin/*
ramas que están por delante de la rama actual
#!/bin/bash
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo -e "Current branch: \e[94m$CURRENT_BRANCH\e[0m"
echo ''
git branch -a | grep remotes/origin/ | while read LINE
do
CMD="git diff --shortstat remotes/origin/${CURRENT_BRANCH}...${LINE}"
if $CMD | grep ' file' > /dev/null; then
echo -e "\e[93m$LINE\e[0m" | sed 's/remotes\/origin\///'
$CMD
echo ''
fi
done
- 1. Archivos no rastreados entre sucursales en Git
- 2. Fusionando sucursales remotas en git
- 3. Git-SVN con múltiples sucursales?
- 4. Pedido/sucursales remotas Lista de git-pitón
- 5. Git Workflows: Rebasing Sucursales publicadas/compartidas
- 6. Compartiendo archivos entre sucursales en Git
- 7. Cómo fusionar sucursales en Git por "trozo"
- 8. Reubicación de sucursales remotas en Git
- 9. git svn y trabajando con sucursales privadas?
- 10. Git - Almacenar sucursales en directorios locales separados
- 11. Git: ¿Cómo a la lista comete en esta rama, pero no de las ramas fusionadas
- 12. ¿Puedo mapear sucursales locales en sucursales remotas con diferentes prefijos en git?
- 13. Sucursales transferidas con svn2git
- 14. Por qué no puedo ver las sucursales de forma remota
- 15. git + archivos parcialmente compartidos entre sucursales/repositorios. ¿Es posible?
- 16. Git número de confirmaciones por autor en todas las sucursales
- 17. Cómo hacer copias de seguridad de sucursales privadas en git
- 18. Git: Comprometerse a varias sucursales al mismo tiempo
- 19. ¿Cómo muevo una confirmación entre sucursales en Git?
- 20. EMPUJA todas las sucursales locales de GIT? ¿Mejores prácticas?
- 21. Cambie los nombres de las sucursales en git
- 22. Error de Git: no se puede encontrar
- 23. Comparación de directorios de las sucursales de Git
- 24. Obteniendo entradas fusionadas/unificadas de ABAddressBook
- 25. Sucursales condicional
- 26. ¿Cómo puedo hacer que git-svn elimine las sucursales remotas que ya no existen?
- 27. Herramientas para mantener sucursales en SVN
- 28. Sucursales para Every Little Change?
- 29. Sucursales en Mercurial
- 30. Búsqueda binaria sin sucursales
Si combina 'foo' en' maestro', aparecerá en la lista 'git branch --merder master'. Pero, ¿qué ocurre si te comprometes una vez más con 'foo'? ¿Ya no aparece en esa lista, o lo hace, ya que a pesar de que tiene nuevas confirmaciones, fue * en un punto * fusionado en 'maestro'? –
@CraigOtis Ya no aparecerá en la lista. '--merged' solo enumera las ramas que están * completamente * fusionadas en la rama dada. – Amber
y 'gitk --remotes --not origin/master' le mostrará las confirmaciones en cada rama que no se han fusionado a la maestra. – yoyo