Latest web development tutorials

Responsable de Git

Casi todos los sistemas de control de versiones compatibles con alguna forma de rama. Esto significa que puede utilizar una rama de la línea principal de desarrollo para separar y no afecta a la línea principal sin dejar de trabajar.

Alguien Git modelo de ramificación denominada "Características nirvana", pero precisamente porque se distingue del sistema de control de versiones Git para la familia.

Crear una instrucción de salto:

git branch (branchname)

orden de conmutación rama:

git checkout (branchname)

Cuando cambia ramas, Git utilizará conclusiones finales instantáneas de la sucursal reemplazar el contenido de su directorio de trabajo, rama múltiple no requiere múltiples directorios.

Combinar bifurcaciones comando:

git merge 

Puede fundirse en una rama unificada muchas veces, también se puede optar por eliminar directamente después de la fusión se incorpora ramas.


Responsable de Git

rama listas

comandos básicos se enumeran en la rama:

git branch

Cuando no hay argumentos, rama git será incluido en su sucursal local.

$ git branch
* master

En este caso, significa que hemos llamado una rama "master", y la rama es la rama actual.

Cuando se ejecuta git init, el valor predeterminado Git creará rama "master" para usted.

Si queremos crear manualmente una rama y active la selección. Ejecutar git branch (BRANCHNAME) puede ser.

$ git branch testing
$ git branch
* master
  testing

Ahora podemos ver que con una nueva prueba rama.

Cuando se envía una actualización de esta manera en el último creado una nueva rama, si más tarde también presentar versiones actualizadas, y luego cambiar a la rama "probar", Git va a restaurar el directorio de trabajo para parecerse al crear una rama

A continuación, le mostraremos cómo cambiar ramas, cambiamos con git checkout (rama) que queremos modificar la rama.

$ ls
README
$ echo 'w3cschool.cc' > test.txt
$ git add .
$ git commit -m 'add test.txt'
[master 048598f] add test.txt
 2 files changed, 1 insertion(+), 3 deletions(-)
 delete mode 100644 hello.php
 create mode 100644 test.txt
$ ls
README		test.txt
$ git checkout testing
Switched to branch 'testing'
$ ls
README		hello.php

Cuando nos cambiamos a la rama "prueba", se añade un nuevo archivo test.txt se eliminó hola.php archivo, el archivo original se elimina ha surgido. Cambiar de nuevo a la rama "master", que han vuelto a aparecer.

$ git checkout master
Switched to branch 'master'
$ ls
README		test.txt

También podemos usar el comando git checkout -b (BRANCHNAME) para crear una nueva secundaria, e inmediatamente cambió a la rama, con el fin de actividad en este sector.

$ git checkout -b newtest
Switched to a new branch 'newtest'
$ git rm test2.txt 
rm 'test2.txt'
$ ls
README		test.txt
$ git commit -am 'removed test2.txt'
[newtest 556f0a0] removed test2.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test2.txt
$ git checkout master
Switched to branch 'master'
$ ls
README		test.txt	test2.txt

Como se puede ver, hemos creado una rama, elimine algunos archivos en el contexto de esta rama, y ​​luego volver a nuestra rama principal, los archivos de nuevo.

Utilice rama separada de corte va a funcionar, por lo que podemos hacer las cosas en diferentes contextos, y alternar.

Quite las ramas

Retire la instrucción de salto:

git branch -d (branchname)

Por ejemplo, queremos eliminar rama "prueba":

$ git branch
* master
  testing
$ git branch -d testing
Deleted branch testing (was 85fc7e7).
$ git branch
* master

combinar rama

Una vez que una rama tiene un contenido autónomo, es muy probable que fusionar de nuevo en su rama principal. Se puede utilizar el siguiente comando para cualquier rama fusionado en la rama actual a:

git merge
$ git branch
* master
  newtest
$ ls
README		test.txt	test2.txt
$ git merge newtest
Updating 2e082b7..556f0a0
Fast-forward
 test2.txt | 1 -
 1 file changed, 1 deletion(-)
 delete mode 100644 test2.txt
$ ls
README		test.txt

Los ejemplos anteriores nos newtest fusionado en la rama principal en rama, se elimina test2.txt archivo.

combinar los conflictos

Combinado y no simplemente agregar un archivo, la operación eliminado, Git también combinar los cambios.

$ git branch
* master
$ cat test.txt
w3cschool.cc

En primer lugar, se crea un directorio llamado "change_site" conmutación de la rama en el pasado, nos contentaremos con www.w3cschool.cc.

$ git checkout -b change_site
Switched to a new branch 'change_site'
$ vim test.txt 
$ head -1 test.txt 
www.w3cschool.cc
$ git commit -am 'changed the site'
[change_site d7e7346] changed the site
 1 file changed, 1 insertion(+), 1 deletion(-)
 

El contenido modificado presentado a "change_site" rama. Ahora bien, si se cambia de nuevo a la rama "master" que podemos volver a ver el contenido de nuestras modificaciones antes de modificar el archivo test.txt nuevo.

$ git checkout master
Switched to branch 'master'
$ head -1 test.txt 
w3cschool.cc
$ vim test.txt 
$ cat test.txt
w3cschool.cc
新增加一行
$ git diff
diff --git a/test.txt b/test.txt
index 704cce7..f84c2a4 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1,2 @@
 w3cschool.cc
+新增加一行
$ git commit -am '新增加一行'
[master 14b4dca] 新增加一行
 1 file changed, 1 insertion(+)
 

Ahora bien, estos cambios han sido registrados en mi "maestro" de la rama. A continuación vamos a "change_site" consolidación de la ramificación sobre.

 $ git merge change_site
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
$ cat test.txt 
<<<<<<< HEAD
w3cschool.cc
新增加一行
=======
www.w3cschool.cc
>>>>>>> change_site

Vamos a fusionar antes de una rama en rama "master", surge un conflicto de combinación, entonces tenemos que modificar manualmente.

$ vim test.txt 
$ cat test.txt 
www.w3cschool.cc
新增加一行
$ git diff
diff --cc test.txt
index f84c2a4,bccb7c2..0000000
--- a/test.txt
+++ b/test.txt
@@@ -1,2 -1,1 +1,2 @@@
- w3cschool.cc
+ www.w3cschool.cc
 +新增加一行

En Git, git add que podemos utilizar para contar Git conflicto de archivos se ha resuelto

$ git status -s
UU test.txt
$ git add test.txt 
$ git status -s
M  test.txt
$ git commit
[master 88afe0e] Merge branch 'change_site'

Ahora hemos resuelto con éxito conflictos de fusión, y presentar los resultados.