¿Cómo rastrear files específicos en la twig de Git?

Tengo una twig 'master' con 5 nombres de files

file1.txt
file2.txt
file3.txt
file4.txt
file5.txt

Bifurqué maestro en 'edit_branch'. Hago estos cambios

edit file1.txt
edit file2.txt
delete file3.txt
delete file4.txt
delete file5.txt
add file6.txt

Cuando fusiono 'edit_branch' para dominar, quiero estos cambios
file1.txt -> updated
file2.txt -> updated
file3.txt -> no change
file4.txt -> no change
file5.txt -> no change
file6.txt -> added

Básicamente, los files que se agregan o modifican en la nueva bifurcación deben volver a fusionarse en la twig 'master'. Las eliminaciones mencionadas anteriormente son necesarias.

¿Alguna sugerencia sobre cómo diversificar y configurar el repository?

Esta es una pregunta que relaciona el comportamiento fundamental de git. Desea fusionar los cambios de una twig a otra mientras trata las eliminaciones como "sin cambios". Pero básicamente, creo, eso es imposible, porque git trata las eliminaciones como cambios y, por lo tanto, refleja las eliminaciones en la fusión.

En su caso específico, el maestro todavía contiene file3.txt, file4.txt, file5.txt y estos 3 files no se modifican en ningún sentido en Branch Master.

Pero en la twig 'edit_branch' han sido eliminados (preferiblemente por git rm) y, por lo tanto, cambiados en edit_branch.

Entonces, ahora si fusionas 'edit_branch' a master, git verá que el maestro es básicamente un antepasado de edit_branch, y por lo tanto hará una fusión de avance rápido simplemente designando el último commit de edit_branch como master. Eso significa que siempre reflejará las eliminaciones.

Pero si los files en master se modifican después de la creación de edit_branch, entonces git al less mostrará fusionar CONFLICTOS en los files eliminados, lo que le indicará qué files se han eliminado y, por lo tanto, se deben tener en count.

Entonces, básicamente, no hay una forma directa de hacer lo que quieres hacer. Pero una posible solución sería realizar algunas modificaciones ficticias (como agregar un solo espacio en blanco al final / o escribir un comentario explicando por qué se realizó la modificación) en todos los files en master, justo después de crear edit_branch. Entonces, incluso si cambia a edit_branch y elimina algunos files accidentalmente, al less recibirá una notificación al respecto durante la fusión y tendrá la oportunidad de manejarlo antes de la fusión.

Me gustaría agregar que tales escenarios de fusión y eliminación nunca son realmente útiles en ningún caso conocido de uso real. Cuando elimina algunos files en una twig solo para mantener el directory limpio y hacer que la twig sea intencionalmente diferente del núcleo, no la fusiona al núcleo a partir de entonces. Por ejemplo, en el caso de github-pages, creamos una twig gh-páginas y eliminamos todos los files que no sean las páginas web en esa twig, lo que efectivamente oculta el contenido innecesario de la sucursal. Pero no encontramos la necesidad de fusionar gh-pages a master.

PD. Si vuelves a casa durante la convocatoria, considera invitarme a tomar una cerveza 🙂

¿Te uniste al maestro?

ls: Licence.txt MyPatch.patch Readme.txt

 git branch test git checkout test 

rm Licence.txt

 git status : test deleted: Licence.txt git add --all git commit -m "Remove Readme.txt" 

ls: Licence.txt MyPatch.patch

 git checkout master 

ls: Licence.txt MyPatch.patch Readme.txt

 git merge test : Readme.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Readme.txt 

ls: Licence.txt MyPatch.patch