git - Compartiendo caché rerere
version-control git-merge (2)
He visto a gente recomendar que todos los desarrolladores configuren un enlace simbólico en su máquina desde C:/project/.git/rr-cache
a una carpeta compartida //server/rr-cache
.
Sin embargo, parece más conveniente compartir la carpeta incluyéndola en el propio repositorio git, si es posible. He visto a personas mencionar esta solución, pero en realidad no cómo hacerlo.
¿Algunas ideas?
Se puede compartir a través de una sucursal dedicada. Desea detenerse si hay un conflicto en esa rama y resolverlo, ya que significa que hubo intentos de resolver el mismo conflicto de 2 maneras diferentes. No hace falta decir que esa será la excepción a la regla.
Para los demás en esta pregunta, busque en Google "Rama por función" para ver dónde es útil.
Los ganchos pueden automatizar la sincronización de la rama rr-cache común.
Esto es lo que necesitas para automatizar. rereresharing es una rama de ejemplo con la que se está fusionando, rr-cache es una rama que almacena las resoluciones; Todos estos pasos trabajaron sin problema:
git checkout --orphan rereresharing start-sprint-1
git --git-dir=.git --work-tree=.git/rr-cache checkout -b rr-cache
git --git-dir=.git --work-tree=.git/rr-cache add -A
git --git-dir=.git --work-tree=.git/rr-cache commit -m "initial cache"
git clean -xdf
git checkout rereresharing
git merge --no-ff FTR-1
git merge --no-ff FTR-2
vim opinion.txt # resolve conflict
git add -A
git commit
git checkout rr-cache
git --git-dir=.git --work-tree=.git/rr-cache add -A
git --git-dir=.git --work-tree=.git/rr-cache commit -m "resolution"
git remote add origin ../bpf-central
git push origin rereresharing rr-cache
cd - # assumes you were previously in the other local repo
git remote add origin ../bpf-central
git fetch
git branch rr-cache origin/rr-cache
ls .git/rr-cache
git --git-dir=.git --work-tree=.git/rr-cache checkout rr-cache -- .
ls .git/rr-cache
Ahora está listo para hacer la misma fusión y tendrá su conflicto resuelto.
Tal vez, en lugar de compartir rr-cache
otra opción sería aprender las resoluciones de conflicto del historial de Git existente utilizando rerere-train.sh .