El uso de los conceptos básicos de Git (1)

前几天天遇到个烦心事,想把作业提交push到github,结果弄来弄去没弄懂,作业和其他本地全被clean掉了,回收站都没找着,贼烦。根本原因都是之前学习git的使用一知半解,只求现用,现在几乎忘了。现在看着官方文档捋一遍。

¿Qué es git?
       Es un sistema de control de versiones. Git utiliza el concepto de 'instantánea' para actualizar la versión. Por ejemplo, cuando un archivo bajo un proyecto cambia, el proyecto de la nueva versión solo mantendrá el archivo modificado para mayor eficiencia. Versión de archivos almacenados. Este concepto es muy importante, ¡es muy útil para entender el uso futuro!
Hay tres estados operativos para los datos:

  • Modificado, lo que indica que el archivo se modificó, pero no se envió a la base de datos.
  • Se ha almacenado temporalmente. El estado después de realizar la operación de agregar indica que la versión actual de un archivo modificado está marcada para incluirse en la siguiente instantánea enviada.
  • Enviado, el estado después de la operación de confirmación indica que los datos se han almacenado de forma segura en la base de datos local.

Tres áreas:
área de trabajo, área de almacenamiento temporal y almacén Git.

  • Área de trabajo: el lugar donde solemos modificar
  • Área temporal: guarda la información sobre los cambios que se enviarán, generalmente en el directorio del repositorio de Git, incluido el índice y los datos (puede entenderse como una instantánea)
  • Almacén: guarde el proyecto enviado (puede entenderse como una instantánea de guardado permanente)

No escribiré sobre el proceso de instalación de Git, puedo encontrarlo en todas partes en Internet.
Solo mira la configuración después de la instalación:

Configuracion

Después de la instalación perfecta, configuraremos nuestro propio nombre de usuario y dirección de correo electrónico en el primer paso de esta manera:

$ git config --global user.name "Elizabeth"
$ git config --global user.email "[email protected]"

Entonces podemos usar

$ git config --global user.name 
$ git config --global user.email 

Ver el nombre de usuario global y la dirección de correo electrónico.
comando git config se utiliza para establecer la configuración de la variable de GIT,
diferentes usuarios y diferentes almacenes se pueden establecer diferentes configuraciones
de estas variables se almacenan en tres posiciones diferentes:
/etc/gitconfig, ~/.config/git/config, .git/config
respectivamente, la configuración global de todos los usuarios, el perfil de usuario actual, y el almacén de configuración actual , Cuanto más alto sea el nivel de izquierda a derecha, cubrirá la configuración anterior.
Configurar usuarios de almacén:

$ git config user.name "Elizabai"
$ git config user.email "[email protected]"

Ver usuarios del almacén

git config user.name

Ver configuración global / de almacén

$ git config --global --list
$ git config --list

Obtenga el repositorio de Git

Dos maneras:

  1. Convierta el directorio local al repositorio de Git
  2. Almacén remoto clonado

1. El primer tipo:
ingrese el directorio donde se requiere control de versiones y ejecute el comando:

$ git init

Inserte la descripción de la imagen aquí
Aparece el directorio .git:
aquí solo necesita saber que esta es la columna vertebral del almacén
y luego agregar el archivo al almacén:

$ git add test1.txt
$ git commit -m 'initial project version'

2. El segundo

$ git clone https://github.com/libgit2/libgit2 mylibgit

Cree un directorio llamado mylibgit, luego inicialice un archivo .git y clone desde el repositorio remoto.

Varios estados

Creamos un archivo
Inserte la descripción de la imagen aquí
test2.txt con el contenido ABC en
este momento para git statusver el estado actual:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test2.txt

nothing added to commit but untracked files present (use "git add" to track)

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Muestra que ahora estamos en la rama maestra y también enumera archivos sin seguimiento y sugerencias.
Luego git add 文件/目录agregamos al área de preparación:

$ git add test2.txt

Mira el estado otra vez

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test2.txt


96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Lista de archivos agregados al área de preparación
Podemos utilizar git rm --cached 文件/目录para eliminar el área de almacenamiento temporal
Si utiliza git rm 文件/目录el archivo que git trabajará en forma conjunta puesta en escena directorio área eliminada.
Después de agregar al área de almacenamiento temporal
git add , Git rastreará los cambios de este archivo. Modifiquemos el contenido del siguiente test2.txt y agreguemos una D para
ver el estado:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test2.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test2.txt


96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Dos nuevos consejos: el
primero nos dice que podemos usar git add <file> para actualizar el área de preparación, y el
segundo nos dice que podemos usar git restore <file> para volver a lo que modificamos antes

Usamos el primero que volverá al estado anterior a nuestra modificación, es decir, el contenido del archivo es solo ABC.
Vemos
que podemos utilizar git diffpara comparar el contenido de la zona de estacionamiento y almacén:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git diff
diff --git a/test2.txt b/test2.txt
index 48b83b8..a6bddc4 100644
--- a/test2.txt
+++ b/test2.txt
@@ -1 +1 @@
-ABC
\ No newline at end of file
+ABCD
\ No newline at end of file

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Al ver el nuevo archivo, la diferencia entre el archivo antiguo y el archivo antiguo es solo D, y no hay salto de línea al final de los dos archivos.

Para ver el almacenamiento temporal adicional que se añade a los contenidos de la próxima confirmación, puede utilizar git diff --stagedo git diff --cachedcomandos. Estos dos comandos compararán la diferencia entre el archivo temporal y el último archivo enviado

Enviar la actualización
Enviamos el test2.txt modificado git commital almacén local:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git commit -m "第一次提交"
[master (root-commit) f40e8b9] 第一次提交
 1 file changed, 1 insertion(+)
 create mode 100644 test2.txt

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Echa un vistazo al estado:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git status
On branch master
nothing to commit, working tree clean

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Si sospechamos que el área de preparación anterior es problemática, Git también proporciona accesos directos git commot -apara enviar nuestros archivos modificados y archivos de área de preparación, de modo que podamos git addenviar directamente incluso si somos demasiado vagos .

Ver el historial de envíos
Luego, en la sección anterior test2.txt, agregué E y F respectivamente y los envié
en dos envíos. Luego podemos usar el almacén git logpara ver el historial de envíos:

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git log
commit 3868bcdb2f716c560177d1242875e84245f94ad7 (HEAD -> master)
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 17:09:58 2020 +0800

    第三次提交

commit 0f06de25f32c9f390e5b83fb2eee055bcc05891c
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 17:09:32 2020 +0800

    第二次提交

commit f40e8b946f2f5c39b26629cab15508f275ab0033
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 16:51:21 2020 +0800

    第一次提交

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git log -p
commit 3868bcdb2f716c560177d1242875e84245f94ad7 (HEAD -> master)
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 17:09:58 2020 +0800

    第三次提交

diff --git a/test2.txt b/test2.txt
index 402476b..1c5f8ba 100644
--- a/test2.txt
+++ b/test2.txt
@@ -1 +1 @@
-ABCDE
\ No newline at end of file
+ABCDEF
\ No newline at end of file

commit 0f06de25f32c9f390e5b83fb2eee055bcc05891c
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 17:09:32 2020 +0800

    第二次提交

diff --git a/test2.txt b/test2.txt
index a6bddc4..402476b 100644
--- a/test2.txt
+++ b/test2.txt
@@ -1 +1 @@
-ABCD
\ No newline at end of file
+ABCDE
\ No newline at end of file

commit f40e8b946f2f5c39b26629cab15508f275ab0033
Author: Elizabeth <Elizabeth@example.com>
Date:   Wed Apr 8 16:51:21 2020 +0800

    第一次提交

diff --git a/test2.txt b/test2.txt
new file mode 100644
index 0000000..a6bddc4
--- /dev/null
+++ b/test2.txt
@@ -0,0 +1 @@
+ABCD
\ No newline at end of file
END

(Presione q para salir) enumera la información presentada cada vez y la diferencia en comparación con la anterior, a menudo el hexadecimal es el número de versión.
Operación de deshacer
Reenviar:git commit --amend

Cancelar el almacenamiento temporal de un archivo después de cancelar la operación temporal de varios archivos git reset HEAD <file>...

Deshacer el envío del archivo :, git checkout -- <file>...pero esto es un poco peligroso, puedes entender que este comando es: ¡eliminará la última versión del almacén para sobrescribir el archivo! Después de sacar, la última versión del archivo en el almacén también se ha ido.
Ambas operaciones de deshacer son riesgosas, porque el archivo del área de trabajo se modificó durante nuestro período.

Configuración de almacén remoto

1. Añadir url: git remote add url名字 url
2. Comprobar url existentegit remote -v

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$  git remote add Url1 https://github.com/xxxx/xxxx.git

96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)
$ git remote -v
Url1    https://github.com/xxxx/xxxx.git (fetch)
Url1    https://github.com/xxxx/xxxx.git (push)
96916@DESKTOP-D7SKL2J MINGW64 ~/Desktop/GitReview (master)

Tire para
$ git fetch <remote>
extraer los datos que aún no tenemos, debe fusionar y
empujar manualmente
$ git push <remote> <branch>

Etiqueta

Crear etiqueta: etiquetar
la versión actual v1, -m especificar información de la etiqueta:
git tag -a v1 -m "my version 1.4"
enviar la versión actual al servidor junto con la etiqueta:
$ git push Url1 v1
eliminar la etiqueta del almacén local
git tag -d <tagname>
eliminar la etiqueta del almacén remoto
$ git push Url1 :refs/tags/v1.4-lw

Cambiar versión

Ver número de versión

Volver a la versión anterior:
git reset --hard HEAD^
la versión anterior:
git reset --hard HEAD^
volver a la versión anterior:
git reset --hard HEAD~3
volver a la versión especificada
git reset --hard 91010df
volver a ver todas las versiones iterativas después de volver
git reflog

Publicado 16 artículos originales · me gusta 0 · visitas 249

Supongo que te gusta

Origin blog.csdn.net/weixin_43860530/article/details/105388779
Recomendado
Clasificación