Tengo dos ramas: maestro y dev
Quiero crear una "rama de la característica" de la dev rama.
Actualmente en la rama de desarrollo, hago:
$ git checkout -b myfeature dev
... (algo de trabajo)
$ git commit -am "blablabla"
$ git push origin myfeature
Pero, después de visualizar mis ramas, obtuve:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Quiero decir que la rama parece fusionada, y no entiendo por qué ...
¿Qué estoy haciendo mal?
¿Puede explicarme, por favor, cómo se bifurca de otra bifurcación y vuelve al repositorio remoto para la bifurcación de funciones?
Todo eso en un modelo ramificado como el descrito aquí .
fuente
myFeature
después de que se haya fusionadodev
?myFeature
rama fue empujada al servidor antes de fusionarse, entonces nada. Pero simyFeature
aún no se ha enviado al servidor y desea que aparezca en el servidor, debe enviarlo aparte.git checkout -b myFeature dev
lo mismo que estos 3 comandos: ¿git checkout dev
entoncesgit branch myFeature
y luegogit checkout myFeature
?--no-ff
como se ve una fusiónSi desea crear una nueva rama a partir de cualquiera de las ramas existentes en Git, simplemente siga las opciones.
Primero cambie / finalice la compra en la sucursal desde donde desea crear una nueva sucursal. Por ejemplo, si tiene las siguientes ramas como:
Entonces, si desea crear una nueva rama llamada "subbranch_of_b1" debajo de la rama llamada "branch1", siga los pasos:
Pagar o cambiar a "branch1"
Ahora cree su nueva rama llamada "subbranch_of_b1" debajo de "branch1" usando el siguiente comando.
Lo anterior creará una nueva rama llamada subbranch_of_b1 debajo de la rama branch1 (tenga
branch1
en cuenta que en el comando anterior no es obligatorio ya que el HEAD lo está apuntando actualmente, puede precisarlo si está en una rama diferente).Ahora, después de trabajar con el subbranch_of_b1 , puede confirmarlo, empujarlo o fusionarlo de forma local o remota.
empuje el subbranch_of_b1 a remoto
fuente
git checkout -b some-branch
es taquigrafíagit checkout -b some-branch master
. Resulta quegit checkout -b some-branch
es una forma abreviada degit checkout -b some-branch <current_active_branch>
Crear una rama
$ git branch branch1
$ git branch branch2
Pagar una sucursal
el comando git checkout cambia ramas o restaura archivos de árbol de trabajo
$ git checkout branchname
Renombrar una rama
$ git branch -m branch1 newbranchname
Eliminar una sucursal
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( forzar la eliminación sin verificar el estado combinado )Crear y cambiar sucursal
$ git checkout -b branchname
Ramas que están completamente incluidas
$ git branch --merged
************************** Diferencias de rama [git diff branch1..branch2] ************** **********
Diferencia multilínea$ git diff master..branch1
$ git diff --color-words branch1..branch2
fuente
git push origin :old-name new-name
para eliminar la rama remota de nombre antiguo y presione la rama local de nombre nuevo.Hacer trabajo simultáneo en la
dev
sucursal. Lo que sucede es que, en su escenario, la rama de características se mueve hacia adelante desde la punta de la rama de desarrollo, pero la rama de desarrollo no cambia. Es más fácil dibujar como una línea recta, porque se puede considerar como un movimiento hacia adelante. Llegaste al punto A en dev, y desde allí simplemente continuaste en un camino paralelo. Las dos ramas no han divergido realmente.Ahora, si realiza un commit en dev, antes de fusionarse, comenzará nuevamente en el mismo commit, A, pero ahora las funciones irán a C y dev a B. Esto mostrará la división que está intentando visualizar, como las ramas ahora han divergido.
Versus
fuente
Git 2.23 introduce
git switch
ygit restore
divide las responsabilidades degit checkout
Crear una nueva rama desde una rama existente a partir de git 2.23:
git switch -c my-new-branch
Cambió a una nueva sucursal 'my-new-branch'
Eche un vistazo a esta publicación de blog de Github que explica los cambios con mayor detalle:
fuente
Para crear una rama desde otra rama en su directorio local, puede usar el siguiente comando.
Por ejemplo:
fuente
Si desea hacer una rama de otra rama, siga los siguientes pasos:
supuestos :
BranchExisting
es el nombre de la sucursal desde la que necesita hacer una nueva sucursal con nombreBranchMyNew
.Pasos :
Obtenga la sucursal en su máquina local.
Este comando creará una nueva sucursal en su local con el mismo nombre de sucursal.
Ahora, desde la salida de la rama maestra hasta la rama recién obtenida
Ahora estás en BranchExisting. Ahora cree una nueva rama a partir de esta rama existente.
¡Aqui tienes!
fuente
Para crear una rama desde otra, también puede usar esta sintaxis:
Es un poco más corto que "git checkout -b" + "git push origin"
fuente