remove - git tag best practices
haciendo un empujón git de una cabeza separada (6)
Estoy en una cabeza separada e hice algunos cambios. Quiero impulsar estos cambios a esta cabeza separada con git. No quiero que mis cambios vayan a la rama de desarrollo y ciertamente no a la rama maestra. Estoy trabajando en un archivo con otra persona.
Ramas de ejemplo
develop
master
*(HEAD detached at origin/49792_testMocha)
¿Cómo me empujo a la cabeza sin afectar el desarrollo o el dominio?
git checkout
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
Esto verificará la nueva rama que apunta a la confirmación deseada.
Este comando pagará a un commit dado.
En este punto, puede crear una rama y comenzar a trabajar a partir de este momento.
# Checkout a given commit.
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
#in order to be able to update the code.
git checkout <commit-id>
# create a new branch forked to the given commit
git checkout -b <branch name>
Cree una nueva rama para ese commit y finalice la compra:
git checkout -b <branch-name> <commit-hash>
.
Ahora puede enviar sus cambios a la nueva rama:
git push origin <branch-name>
En caso de que necesite limpiar su otra rama de las confirmaciones sobrantes, asegúrese de ejecutar
git reset --hard <branch-name>
.
Aquí hay un artículo que explica cómo funciona la ramificación y la cabeza separada .
Cree una nueva sucursal usando
git checkout -b BRANCH_NAME
Luego, empuje la nueva rama al control remoto:
git push origin BRANCH_NAME
Nota: ¡hacer una rama antes de empujar es más recomendable que git 2.11 o menos se use para segfault!
Este no será el caso con Git 2.12+ (Q1 2017)
Ver
commit b10731f
(07 ene 2017) por
Kyle Meyer (
kyleam
)
.
(Fusionada por
Junio C Hamano -
gitster
-
en
commit b85f79c
, 18 ene 2017)
branch_get_push
: no segfault cuando HEAD está desconectado"
git <cmd> @{push}
" en un HEAD separado usado para segfault; Se corrigió el error con un mensaje.
El error ahora será:
HEAD does not point to a branch
Con Git 2.12 o más, puede empujar su CABEZA separada a una rama remota, como se muestra en la answer .
Si bien todas las respuestas aquí responden la pregunta original (cómo empujar desde una cabeza separada sin afectar otras ramas), todas sugieren crear una nueva rama.
Aquí le mostramos cómo avanzar a una nueva sucursal remota sin crear una nueva sucursal local:
git checkout --detach # (or anything else that leaves you with a detached HEAD - guillotine anyone?)
[change stuff & commit]
git push origin HEAD:refs/heads/my-new-branch
Reemplace el
origin
con el nombre remoto apropiado (al que tiene acceso de escritura) y
my-new-branch
con lo que desee que se llame a la nueva rama.
Su commit (s) en
HEAD
será empujado a una nueva rama llamada
my-new-branch
.
🎉
Si está en una cabeza separada y quiere empujar a su rama remota
git push origin HEAD:name-of-your-branch
de lo contrario, puede crear una nueva rama y presionarla (se creará automáticamente)
git branch new-branch-name
git push -u origin new-branch-name