¿Por qué git worktree add crea una twig y puedo eliminarla?

git worktree add para crear un nuevo tree de trabajo. Noté que ha creado una nueva sucursal en el repository con el mismo nombre que el tree de trabajo. ¿Para qué es esta twig?

He comprobado una otra twig preexistente en el segundo tree de trabajo. ¿Puedo borrar la twig creada por git worktree add ?

Solutions Collecting From Web of "¿Por qué git worktree add crea una twig y puedo eliminarla?"

La bifurcación es necesaria porque no se puede realizar la misma ramificación en diferentes líneas de trabajo al mismo time.

Entonces, si no especifica una twig al agregar el tree de trabajo, entonces git lo agregará automáticamente, en function de su twig actual y con el nombre del directory del tree de trabajo.

Puede preguntar, ¿por qué no puedo tener la misma salida de la sucursal dos veces? Piensa en lo que sucederá con el tree de trabajo A cuando te comprometas con B, si ambos comparten la twig … ¡el tree de trabajo A verá el compromiso en B como una diferencia local, pero a la inversa! como si lo hubieras hecho, git reset --soft HEAD^ … Eso sería bastante peligroso.

Por cierto, esa es la misma razón por la que no puede enviar a una sucursal de un depósito no descubierto que está prestado.

Acerca de su última pregunta: ¿puede eliminar la sucursal? Por supuesto, esa twig no es de ninguna manera especial. Puede eliminarlo siempre que no esté desprotegido en ningún lado.

git worktree –help lo menciona claramente a continuación.

 COMMANDS add <path> [<branch>] Create <path> and checkout <branch> into it. The new working directory is linked to the current repository, sharing everything except working directory specific files such as HEAD, index, etc. If <branch> is omitted and neither -b nor -B is used, then, as a convenience, a new branch based at HEAD is created automatically, as if -b $(basename <path>) was specified. prune Prune working tree information in $GIT_DIR/worktrees. 

Parece que puedes correr en modo separado con --detach , que no creará twigs. Esto puede ser útil si no planea hacer modificaciones en el tree de trabajo, sino simplemente ejecutar comstackr o ejecutar testings, por ejemplo.

Fuente: https://stacktoheap.com/blog/2016/01/19/using-multiple-worktrees-with-git/#long-running-tasks

Mientras los otros chicos responden esta pregunta, pongo commands para eliminar la folder , eliminar el worktree y eliminar la branch aquí:

primero, enumera todos tus treees de trabajo para verificar …

 $ git worktree list 

luego, elimine la carpeta del tree de trabajo

 $ rm -rf ../path/to/worktree 

después de eso, elimine el tree de trabajo

 $ git worktree prune 

en caso de que tenga más de un tree de trabajo, el command anterior solo poda el tree de trabajo de modo que su ruta ya no exista, ¡así que no se preocupe!

finalmente, elimine la twig (el mismo nombre de twig como el tree de trabajo)

 $ git branch -D <branch-name>