Buscar git branches para files en común

Me gustaría search git branches para cualquier file modificado en común entre el mío y todos los demás, como un método de detección temprana de conflictos. ¿Hay algún método que Git me permita hacer esto que estoy pasando por alto (o mediante scripts de shell)?

El método en el que he pensado por ahora es, como un enlace post-commit:

  1. Ejecutar un git diff --name-only master en la twig en la que estoy, para determinar todos los files que searché en otras twigs (para generar una list de twigs en conflicto)
  2. Búsqueda / grep'ing para cada file que he obtenido (en el paso anterior) en las otras sucursales remotas de todos a través de git diff --name-only origin/<remote branch> origin/master en el repository remoto
  3. Devolver una list de sucursales que contienen uno o más de los files que entran en conflicto, en function de los resultados de mi búsqueda / grep.

La mayoría de los methods disponibles se enumeran en " ¿Cómo puedo get una vista previa de una fusión en git? "

El segundo paso que menciona es uno de los más rápidos (en comparación con realizar la fusión con --no-ff y --no-commit )

 git diff --name-status origin/abranch 

(en comparación con HEAD por defecto)

Puede agregar un filter de estado , ya que busca files modificados (files comunes entre sucursales con modificaciones)

No es necesario el primer paso: el segundo mostrará directamente los files comunes modificados en comparación con HEAD.

 git diff --name-status --diff-filter=M origin/abranch 
 potentially-conflicting-changes-between () { local base=`git merge-base $1 $2` { git diff --name-only $base $1 git diff --name-only $base $2 } | sort | uniq -d } 

mostrará todos los files que se fusionan examinaría para los conflictos, entonces es solo una cuestión de ejecutar los refs, lo más fácil podría ser

 for other in `git branch -r`; do printf '--- \n%s %s\n' master $other potentially-conflicting-changes-between master $other done 

También puede hacer la preparación de combinación de bajo nivel directamente para eliminar falsos positivos en cambios idénticos, esto podría ahorrar mucho time pero mostrará los detalles del índice de todos los conflictos potenciales y verificará si la fusión realmente podría ejecutarse en su tree de trabajo actual sin pisar el trabajo no confirmado

 potentially-conflicting-changes-between () { ( export GIT_INDEX_FILE=`git rev-parse --git-dir`/scratch-index; git read-tree --empty; git read-tree -m $(git merge-base $1 $2) $1 $2; git ls-files -u ) }