Pregunta

Tengo dos ramas: principal y dev

Quiero crear una "rama de la característica" de la dev rama.

Actualmente en el dev rama, que hago:

$ git checkout -b myfeature dev

... (un trabajo)

$ git commit -am "blablabla"
$ git push origin myfeature

Sin embargo, después de la visualización de mis ramas, que tengo:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

Me refiero a que la rama parece ff fusionaron, y yo no entiendo por qué ...

Lo que estoy haciendo mal?

¿Me puede explicar por favor cómo se ramifican desde otra rama de la espalda y empujar al repositorio remoto para la rama de la característica?

Todo lo que en un modelo de ramificación como el descrito aquí .

¿Fue útil?

Solución

Si te gusta el método en el enlace que has enviado, echar un vistazo a Git flujo .

Es un conjunto de secuencias de comandos que creó para ese flujo de trabajo.

Sin embargo, para responder a su pregunta:

$ git checkout -b myFeature dev

Crea rama MyFeature fuera prog. Hacer su trabajo y luego

$ git commit -am "Your message"

Ahora fusionar los cambios en dev sin un avance rápido

$ git checkout dev
$ git merge --no-ff myFeature

Ahora empujar cambios en el servidor

$ git push origin dev
$ git push origin myFeature

y verá que la forma en que lo desee.

Otros consejos

Si desea crear una nueva rama de cualquiera de las ramas existentes en Git, sólo tienes que seguir las opciones.

En primer lugar / cambio de la caja en la rama desde la que desea crear una nueva rama. Por ejemplo, si usted tiene las siguientes ramas como:

  • principal
  • dev
  • BRANCH1

Así que si desea crear una nueva rama llamada "subbranch_of_b1" en la rama llamada "BRANCH1" seguir los pasos:

  1. Checkout o cambio en "BRANCH1"

    git checkout branch1
    
  2. Ahora crear su nueva rama llamada "subbranch_of_b1" en la "BRANCH1" con el siguiente comando.

    git checkout -b subbranch_of_b1 branch1
    

    El anterior creará una nueva rama llamada subbranch_of_b1 en la rama BRANCH1 (nota que branch1 en el comando anterior no es obligatorio puesto que la cabeza está apuntando a ella , puede precisa que si están en una rama diferente, sin embargo).

  3. Ahora, después de trabajar con el subbranch_of_b1 usted puede comprometerse y empuje o fusionarla forma local o remota.

 una ilustración gráfica de la muestra de crear ramas bajo otra rama

empuje el subbranch_of_b1 a distancia

 git push origin subbranch_of_b1 

crear una rama

  • Crear rama rama principal cuando está desprotegido. Aquí comete en maestro se sincronizarán con la rama que ha creado.

    $ git branch branch1

  • Crea la rama cuando BRANCH1 está desprotegido. Aquí comete en BRANCH1 se sincronizarán con BRANCH2

    $ git branch branch2


Pedido de una rama

git checkout ramas del interruptor de mando o restaurar los archivos del árbol de trabajo

  • $ git checkout branchname

Cambiar el nombre de una rama

  • $ git branch -m branch1 newbranchname

Eliminar una rama

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( eliminación fuerza sin comprobar el estado resultante de la fusión )

Crear e interruptor Branch

  • $ git checkout -b branchname

Ramas que están completamente incluidos

  • $ git branch --merged


************************** Diferencias Branch [git diff branch1..branch2] **** ********************

diferencia Multilínea
  • $ git diff master..branch1
diferencia SingleLine
  • $ git diff --color-words branch1..branch2
trabajo simultáneo

Do en la rama dev. Lo que ocurre es que en el escenario de las sucursales función se mueve hacia adelante desde la punta de la rama dev, pero la rama dev no cambia. Es más fácil dibujar como una línea recta, ya que puede ser pensado como el movimiento hacia adelante. Usted lo hizo al punto A en dev, y desde allí se limitó a seguir en un camino paralelo. Las dos ramas en realidad no han divergido.

Ahora, si usted hace un commit en dev, antes de la fusión, que comenzarán nuevamente al mismo cometer, A, pero ahora cuenta se destinará a C y dev a B. Esto mostrará la división que está tratando de visualizar, como las ramas han divergido.

*-----*Dev-------*Feature

Versus

       /----*DevB
*-----*DevA
       \----*FeatureC

Git 2.23 introduce git switch y git restore para dividir las responsabilidades de git checkout

Creación de una nueva rama de una rama existente como de git 2.23:

git switch -c my-new-branch

Al cambiar a una nueva rama 'mi-new-rama'

  • -c es la abreviatura de - crear y sustituye a la conocida git checkout -b

Tome un vistazo a este Github entrada de blog que explica los cambios en detalle más:

2,23 Git trae un nuevo par de comandos experimentales para la suite de existir los: interruptor de git y GIT restaurar . Estos dos están destinados a la larga proporcionar una mejor interfaz para el git checkout bien conocido. El nuevo comandos tienen la intención de cada una separación clara, perfectamente divvying lo que las muchas responsabilidades de git checkout

Si desea hacer una rama de alguna otra rama a continuación, siga los pasos abajo:

Supuestos

  1. Ahora mismo estás en la rama principal.
  2. No tiene cambios a cometer. (Si usted tiene cualquier cambio a cometer, esconderla!).
  3. BranchExisting es el nombre de la rama de la que se necesita para hacer una nueva rama con nombre BranchMyNew.

Pasos

  1. Obtener la rama en el equipo local.

    $ git fetch origin BranchExisting : BranchExisting
    

Este comando creará una nueva sucursal en su localidad con el mismo nombre rama.

  1. Ahora, desde la caja rama principal a la rama recién descabellada

    $ git checkout BranchExisting
    
  2. Ahora se encuentra en BranchExisting. Ahora crea una nueva rama de esta rama existente.

    $ git checkout -b BranchMyNew
    

Aquí tienes!

Para la creación de una rama de otra se puede utilizar esta sintaxis, así:

git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>

Es un poco más corto que "git checkout -b" + "origen git push"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top