Compartir el aprendizaje de Git

A veces sobreestimo mi propio peso en el corazón de los demás, porque espero, pero también espero con ansias, y espero que los demás sean buenos. No debe considerarse un mal hábito, es solo que puede sentirse decepcionado o perdido más, o se adaptará lentamente y luego aprenderá a ajustar su posición.

git entender

1. Git es un software de control de versiones distribuido.

a. Distribuido:

b) Control de versiones: los artículos universitarios se revisan una y otra vez, y eventualmente habrá muchas versiones, esto es control de versiones de archivos.

Se guardan demasiadas versiones, no lo que quiero, avanza. . .

c. Control de versión local: (En este momento, solo hay una versión actual, y puede ver los documentos de diferentes versiones en el pasado a través de comandos). En este momento, solo puede controlarlo usted mismo, y puede ' t controlarlo con varias personas

d) Centralizado: (hay un servidor central) Hay todas las versiones diferentes, SVN, y solo hay una versión en cada computadora.Si el servidor central actual no funciona, la integridad del código puede ser destruida en este momento.

Distribuido: a diferencia de lo centralizado, cada computadora guarda una copia de todas las versiones del código, y el servidor principal está inactivo sin afectar la integridad del código, y el desarrollo individual aún se puede llevar a cabo.

Software: descargar e instalar en la computadora para ejecutar se llama software

2. El objetivo principal del control de versiones es evitar problemas en línea y facilitar la reversión.

3. Git configura la información personal

git config --global user.email "[email protected]"

git config --global user.name "wangzi"

4. Instalación del sitio web oficial de git para lograr el control de la versión local

①Abre git e ingresa a la carpeta que será administrada por git

②Inicialice el git init del almacén para generar un archivo .git, que contendrá información sobre el control de versiones posteriores y, por lo general, no es necesario modificarlo (comenzar a administrar)

③git status Ver el estado de los archivos en la carpeta actual (rojo significa no administrado), los archivos rojos están en el área de trabajo

④git add demo.txt El archivo se vuelve verde y el archivo está administrado. Si desea que todo esté administrado, ingrese git add. Add e ingrese al área de almacenamiento temporal

⑤git commit -m "v1" Después de implementar la primera confirmación de control de versiones, ingrese al repositorio, que es el repositorio local

⑥git log ver la versión generada

5. Revertir

git log Ver una larga cadena de caracteres después de la confirmación del registro enviado

Confirme la información de la versión a la que desea regresar después del comando git reset --hard + git_log

Después de la reversión, el comando git log no mostrará el registro que se revirtió. Debes ingresar git reflog. En este momento, puedes mostrar todos los registros de confirmación. Si quieres volver a esa versión, ejecuta git reset - -hard + número de versión (comando git reflog Después de eso, cada confirmación tiene un número de versión)

6, desarrollo de la rama

V1 es la rama más original, V2 se modifica y solo el contenido modificado se conserva en forma de punteros, y la forma no modificada de una instantánea se guarda, apuntando a V1 y V3 de la misma manera. V4 y 5 indican que se crea la rama.

El desarrollo de sucursales es una muy buena forma de soluciones de emergencia para errores en línea.

Por ejemplo, v3 es actualmente contenido en línea, un error necesita ser arreglado con urgencia, v5 está actualmente en desarrollo, luego puede crear una nueva rama sobre la base de v3, como v4, después de que se complete la reparación, V4 se puede fusionar en la rama principal directamente. Conéctese directamente en línea sin afectar el desarrollo continuo de V5.

Crear una rama: git branch dev

Cambiar de rama: dev de git checkout

Crear y cambiar de rama: git checkout -b dev

7. Proceso de corrección de errores:

Cree un error de rama basado en la rama principal, modifique la confirmación de contenido, vuelva a la rama principal actual y fusione la rama del error. ------- error de fusión de git

Una vez completada la reparación, la rama de msater es normal. En este momento, puede descargar el molino y matar al burro y matar la rama de error. —Git branch -d error

8 、 github 与 gitlab

Almacén de alojamiento de código Github gitlab (código abierto, construye tu propio servidor, crea tu propio almacén, administra tu propio código)

9 、 git pull origin dev

git fetch origin dev primero tire al almacén local git merge origin / dev Para mostrar que se extrae de forma remota, debe agregar origin / delante de él

10. Existe una situación en la que la mitad del código se desarrolla en casa pero se olvida de presionar de forma remota. Luego, cuando fui a casa para extraer el código, descubrí que no había ningún push. En este momento, puede desarrollar otras funciones primero, luego presionar y luego extraer el código después de llegar a la empresa para resolver el conflicto, continuar desarrollando y completar, y luego empujar.

11. Rebase de uso

Beneficios ① puede hacer que los registros de git sean más concisos

Combine varios registros de envío locales en un solo registro (no se recomienda la fusión de rebase para aquellos que han sido enviados al almacén remoto, será más problemático)

git rebase -i HEAD ~ 2 significa fusionar el último registro actual con los dos registros enviados anteriormente o git rebase -i + número de versión

Escenario ②: el comando git pull generalmente produce bifurcaciones. Para evitar bifurcaciones, puede ingresar el siguiente comando: git fetch origin dev luego git rebase origin / dev Si hay un conflicto, resuélvalo primero y luego git rebase --continue

Escenario desarrollo de rama ③, múltiples bifurcaciones, si no desea bifurcar, puede usar rebase

12. Resuelve múltiples conflictos de software incomparable

git config --local merge.tool aaa

git config --local mergetool.path 'directorio de instalación de software'

git config --local mergetool.keepBackup false significa que el archivo de copia de seguridad no se guardará después de que se resuelva el conflicto

Software de aplicación para resolver conflictos: git mergetool

13. Grabar visualización gráfica: git log --graph --pretty = formato: "% h% s"

especificación de etiqueta

La etiqueta Git se utiliza principalmente para etiquetar el número de identificación de la versión generada después de un determinado envío de código

Cada proyecto debe etiquetarse después de fusionar el maestro.

Producción: GIC2021-01-21

Entorno de prueba: k8s_test_20210111

Los comentarios de las etiquetas deben ser lo más claros posible

Operación de comando de etiqueta:

Ver la etiqueta local git tag

Llame a uno localmentetag git tag 1-25

Eliminar etiqueta local git tag -d 1-25

Las etiquetas creadas solo se almacenan localmente y no se enviarán automáticamente al control remoto. Por lo tanto, la etiqueta incorrecta se puede eliminar de forma segura de forma local.

Agrega una nota a la etiqueta: git tag V1 -m "first version“

Si desea enviar una etiqueta al control remoto, use el comando git push origin 1-25

Empuje múltiples etiquetas locales a remoto git push origin --tags

Elimine la etiqueta, si se ha enviado al control remoto, puede eliminar el local primero y luego eliminar el remoto git push origin :refs/tags/1-25

Eliminar etiqueta o usar: git push origin :111

Cambie al código correspondiente a una etiqueta:git checkout <tagname>

Si desea editar el código correspondiente a una etiqueta, debe crear una rama y luego cambiar la etiqueta: git checkout -b <branch-name> <tagname>

Escenarios de uso de etiquetas:

mc-service se conectará en línea del 1-22 para modificar la etiqueta: GIC2021-01-22

La nueva etiqueta de adquisición de información de usuario de contenido: GIC2021-01-26 se lanzó el 1.26. Se encontró un error en el código durante el proceso en línea. En este momento, hay dos formas:

Una es: corrija el error y comience una nueva ronda en línea. En este caso, el tiempo requerido puede ser relativamente alto y el problema debe resolverse rápidamente y en línea.

La otra es: use la etiqueta existente GIC2021-01-22 para revertir directamente. Implemente el código debajo de la etiqueta en el entorno de producción y luego corrija cuidadosamente el error y vuelva a ejecutarlo en línea.

Tire del código remoto:

1. Descarga la herramienta de escritorio y abre git bash aquí

2. Cree una carpeta e ingrese la carpeta para inicializar el almacén mkdir test / cd test / git init

3. Asociar el origen del almacén remoto git remote add <dirección del almacén remoto>

4. Extraiga el código del almacén remoto git pull origin master o git clone <dirección de clonación> Este comando no necesita inicializar el almacén, puede clonar el código directamente en el local

Operación de sucursal:

Ver sucursales locales: sucursal de git

Ver ramas remotas: git branch -r

Ver ramas locales y remotas: git branch -a

Lleva todas las ramas al local: git fetch (a veces no puedes encontrar una rama remota para hacer esto)

Ver la rama remota vinculada a la rama local: git branch -vv

Enlazar la rama remota: git branch --set-upstream-to = origin / master

Cree una sucursal local: git branch <nombre de la sucursal>

Crear y cambiar de rama: git checkout -b <nombre de rama>

Empuje la rama local al remoto: git push origin test: test

Elimina la rama local: git branch -D <nombre de la rama>

Eliminar la rama remota: git push origin --delete <nombre de la rama>

Cambie el nombre de la rama: git branch -m <nombre original> <nombre nuevo>

Envíe todas las modificaciones locales al área de almacenamiento temporal: git add.

Envíe un archivo local (agregue el nombre del archivo): git add test.py

Envíe el área de ensayo a la sucursal local: git commit -m "Comentarios"

Envíe la rama local al control remoto: git push

operación git stash:

Guarde el progreso actual y guarde todas las modificaciones no confirmadas (incluidas las temporales y no temporales) para la restauración posterior del directorio de trabajo actual.

git alijo

Se recomienda agregar un mensaje a cada alijo para registrar la versión y usar git stash save para reemplazar el comando git stash. Los ejemplos son los siguientes:

Mostrar todo lo almacenado:

git stash list ---- Inserte la descripción de la imagen aquí
restaura el progreso especificado (no se eliminará de la lista):

git stash apply + stash @ {}:

Restaurar el último progreso eliminará el último progreso de la lista:

git stash pop

Borrar todo el almacenamiento

git alijo claro

Borrar un cierto almacenamiento

git stash drop stash @ {}:

operación de reversión de git:

Empuje al almacén local, no quiera enviar, regrese a la última versión enviada

1. suave ① Mueve el puntero HEAD de la biblioteca local

Esto significa que después de la reversión, solo se mueve el puntero de la biblioteca local y no se realizan cambios en el área de almacenamiento temporal ni en su código local.

Y el código que envió a la biblioteca local la última vez es verde, es decir, no se envió

2. mixto ① Mueva el puntero HEAD de la biblioteca local

②Restablecer el área de almacenamiento temporal

Esto significa que después de la reversión, no solo se mueve el puntero de la biblioteca local, sino que también desaparece el área de almacenamiento temporal, lo que significa que el archivo que agregó al área de almacenamiento temporal la última vez debe agregarse nuevamente

3. Difícil ① Mueva el puntero HEAD de la biblioteca local

②Restablecer el área de almacenamiento temporal

③Restablecer el área de trabajo

Significa que después de la reversión, el código local es el código de su versión de reversión.

Confirme 4 veces seguidas y anote la información de envío ------------------ Inserte la descripción de la imagen aquí
git log Vea el registro de envío, el encabezado señala la última confirmación ----- - Inserte la descripción de la imagen aquí
git reset --hard <número de confirmación> ------------------------------- El Inserte la descripción de la imagen aquí
registro de Git nuevamente encontró que no hay más registro de confirmación de 444, el código es más 333 Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí
4. mantener

① Mueva el puntero HEAD de la biblioteca local

②Restablecer el área de trabajo

Esto significa que después de la reversión, el código local es el código de su versión de reversión y los archivos en el área de almacenamiento temporal aún se guardan.

Operación de rebase:

Combine varios registros de envío en un solo envío para facilitar code_review

git rebase -i <confirmación de una determinada confirmación>

git log para ver el registro de confirmación actual y
Inserte la descripción de la imagen aquí
ejecutar el comando git rebase -i 02ee740b49912baf2ed7275c983124b131d87bfc (los anteriores se fusionarán, excluyendo esta confirmación) e ingresar a la página siguiente, elegir significa seleccionar la confirmación actual s significa no guardar y salir de esta commit, ingrese el primero Ingrese un registro de compromiso después de la combinación local en las dos páginas, guarde y salga, y git log nuevamente, ¡la combinación es exitosa! ! !
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
git push -f Force push al control remoto, y la fusión es exitosa.
Inserte la descripción de la imagen aquí
La operación de rebase tiene ciertos riesgos. Sobrescribirá algunos de los registros de envío anteriores. Se recomienda crear una nueva rama para la operación. Luego, después de que no haya ningún problema, combine todas las confirmaciones de la rama recién creada y luego combínela con la maestra.

operación de fusión:

El maestro de la rama actual

git merge branch_test ---- Fusiona la rama branch_test con el maestro, y la operación mediante merge producirá una bifurcación, como se muestra en la Figura 1. Si no quieres producir una bifurcación, puedes usar rebase, como se muestra en Figura 2, el comando es git rebase <nombre de rama>, si después de que se resuelva el conflicto, git rebase --continuar
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Flujo de trabajo de desarrollo de sucursales:

Al recibir una nueva solicitud, como modificar el nombre de usuario y contraseña de la base de datos, el proceso habitual es el siguiente:

Cambiar a la rama maestra del proyecto: git checkout master

Extraiga el último código: git pull origin master

Cree una nueva rama y cambie a la rama recién creada: git checkout -b feature / update_database_username_pwd (el nombre de la rama generalmente comienza con feature /, seguido del nombre de la función correspondiente)

Modifique en la rama recién creada y envíe al control remoto después de completar: git add. / Git commit -m "update_finish" / git push orgin feature / update_database_username_pwd: feature / update_database_username_pwd

Fusionar el código actual con master: git checkout master / git merge feature / update_database_username_pwd

Envíe la solicitud de fusión al colega de la revisión de código relevante para code_review.

Una vez aprobado el código, etiquetar el master, el tag estándar se refiere al anterior de cada proyecto, y luego se realiza la prueba de prelanzamiento.

Si no hay ningún problema, conéctese normalmente. Si se produce una reversión, se debe proporcionar la etiqueta de la versión anterior. Debe prepararse con anticipación antes de conectarse en línea para retroceder en el tiempo.

Un error en línea necesita un proceso de reparación de emergencia:

Hay una ligera diferencia al crear una rama y nombrarla, el nombre es el siguiente: hotfix / + "Resumen de contenido reparado"

El resto del proceso es el mismo que el proceso durante el desarrollo de la rama.

Supongo que te gusta

Origin blog.csdn.net/qq_37304462/article/details/113215951
Recomendado
Clasificación