tag remota rama que para name conectar con como commits commands cambiar git branch git-branch

remota - git tag name



Congelar una rama de Git (5)

Digamos que tengo una rama de desarrollo. Creo una rama de características a partir de esto para desarrollar una característica. Una vez que la característica se desarrolla, se fusiona de nuevo en desarrollar. Bastante como se muestra aquí:

¿Hay alguna manera de que pueda congelar la rama de características para que no se puedan realizar más confirmaciones?

La razón para no eliminar directamente la rama es para que la visualización del historial aún pueda mostrar la rama de la función y que, si es necesario que se realice una modificación en la función, es posible que alguien cree una nueva rama de la función desde el último compromiso La característica anterior.


Christopher tiene razón, el etiquetado te ayudará a hacer esto. Recomiendo eliminar el nombre de la sucursal también para que sea un poco más difícil para alguien hacer checkout de la sucursal y hacer modificaciones.

Primero, fusionar la rama en desarrollo.

git checkout develop git merge --no-ff feature_1

A continuación, compruebe la rama

git checkout feature_1

Luego crea una etiqueta, con un comentario.

git tag -a -m "Freezing a feature branch that fixes.." feature_1_frozen

Luego borra la rama

git checkout develop git branch -d feature_1

Después de hacer esto, no podrá pagar la sucursal por nombre. En su lugar, podrá marcar la etiqueta por su nombre, esto lo colocará en un estado principal separado que disuadirá los cambios en el código.

Ahora para envolver las cosas y sincronizarlas con el origen ...

Presiona la actualización y la nueva etiqueta

git push --tags origin develop

Eliminar la rama de función remota

git push origin :feature_1


Considere git-freeze como se menciona en Git - Estado de sucursal (congelado, inactivo, etc.) .


Estoy usando la consola "Git Bash" para congelar la rama:

¿No tienes Git Bash?

Aquí es cómo instalar y usar la consola Git Bash:

Referencia:

https://github.com/msysgit/msysgit/releases/

https://help.github.com/articles/set-up-git/

Cómo congelar una rama

git checkout {branch-to-keep-alive} git merge --no-ff {branch-to-freeze}

Si git solicita un mensaje de combinación, escríbalo, luego use la tecla [Esc] y luego escriba el comando ": wq" para guardar y salir.

Debe ir a Visual Studio y asegurarse de que puede construir la solución correctamente (con {branch-to-keep-alive}).

git checkout {branch-to-freeze} git tag -a -m "{your-description}" {tag-for-the-branch-to-freeze}

Convención: crea la etiqueta como esta: {branch-name} _frozen

git checkout {branch-to-keep-alive} git branch -d {branch-to-freeze} git push --tags origin {branch-to-keep-alive} git push origin :{branch-to-freeze}

Cómo fusionar una rama con el maestro:

git checkout {your-working-branch}

Maestro de git merge

Abrir vs y resolver conflictos de fusión si hay alguno. Siempre reconstruir todas las cosas.

git checkout master git merge development

No habrá ningún conflicto ahora y todo está listo para ir.

Consola de Git Bash:


Podría usar algo como gitolite o gerrit para los controles de acceso y permiso a lo largo de sucursales, etiquetas y repositorios.

Echa un vistazo aquí:


Sólo tienes que etiquetarlo.

git tag -a frozen -m "Feature branch frozen here." git push <remote> frozen

Claro, alguien podría venir más tarde y empujar a la rama, pero la etiqueta no debería cambiar a menos que se anule por la fuerza. Puede configurar su control remoto para rechazar los empujes forzados si le preocupa, o incluso firmar las etiquetas con una clave GPG para garantizar la autenticidad.

Obtener el estado de la rama de función cuando se congela es tan simple como git checkout frozen . Los desarrolladores pueden pasar de este punto a voluntad usando un comando: git checkout -B <new_branch> frozen .