tag - ¿Por qué el alijo git no es único por rama?
que es un repositorio git (4)
A partir de Git 1.6, ahora puedes aplicar stashes a las ramas usando
git stash branch name_of_new_branch
¡Git creará la nueva sucursal para ti y la verificará! Para más información, ver
info git-stash
y búsqueda en opción =branch
.
Supongo que puedes mover escondites usando
git stash branch <branch | new_branch> [<stash>]
y para ver una lista de sus escondites, use
git stash list
Supongo que permite mover los cambios de una rama a la siguiente, pero para eso está la selección de cerezas y si no estás comprometiendo tus cambios, ¿no deberías moverlos?
En ocasiones, he aplicado el alijo incorrecto en la rama incorrecta, lo que me dejó preguntándome sobre esta pregunta.
Como se mencionó, si desea un "alijo por rama", realmente desea que una nueva sucursal se bifurque de la sucursal existente.
Además, además del hecho ya mencionado de que el alijo te permite acceder a una rama en la que estás trabajando, también te permite cambiar de ramas antes de que hayas comprometido todo. Esto es útil no tanto para seleccionar cerezas en el sentido habitual como para seleccionar cuidadosamente su copia de trabajo .
F.ex., mientras trabajo en una rama de características, a menudo notaré errores menores o impurezas cosméticas en el código que no son relevantes para esa rama. Bueno, solo arreglo esos de inmediato. Cuando llega el momento de cometer, me comprometo selectivamente con los cambios relevantes, pero no con los arreglos y los cosméticos. En cambio, guardo esos, lo que me permite cambiar a mi rama de arreglos menores en establo, donde luego puedo aplicar el alijo y comprometer cada arreglo menor por separado. (Dependiendo de los cambios en cuestión, también esconderé algunos de ellos una vez más, para cambiar a una rama de función diferente, donde los aplique).
Esto me permite profundizar en el modo de programación cuando estoy trabajando y no preocuparme por una biblioteconomía adecuada de mi código. Luego, cuando tomo un descanso mental, puedo regresar y ordenar cuidadosamente mis cambios en todos los estantes correctos.
Si el alijo no fuera global, este tipo de flujo de trabajo sería mucho más difícil de hacer.
git-stash me resulta más útil para mover los cambios aún no registrados a una rama diferente de la que está actualmente desprotegida.
Por ejemplo: a menudo me encuentro haciendo cambios simples en una rama de corrección de errores; solo para descubrir que un cambio en el que estoy trabajando es más complejo de lo que creía. Git-stash es la forma más fácil de mover ese conjunto de cambios a una rama diferente.
si quiere un "alijo" que se ejecuta en una sucursal, haga algo como esto para almacenar sus cambios en una nueva sucursal de su sucursal actual.
git checkout -b new_stash
git commit -a -m "stashed changes"
deshacer el alijo
git reset HEAD^
git branch -d new_stash
git stash es especialmente útil porque puedes hacer cambios en un árbol sucio, es decir, si tienes ediciones sobresalientes y quieres hacer un cambio
git pull
y no puedes, puedes esconder tus cambios, tirar y luego aplicar el alijo
git stash
git pull
git stash apply
git stash clear
espero que esto haya ayudado!