L'utilisation des bases de Git (1)

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

Qu'est-ce que Git?
       Il s'agit d'un système de contrôle de version. Git utilise le concept d '«instantané» pour mettre à jour la version. Par exemple, lorsqu'un fichier sous un projet change, le nouveau projet de version ne conservera le fichier modifié que pour plus d'efficacité. Version des fichiers stockés. Ce concept est très important, il est très utile de comprendre son utilisation future!
Il existe trois états de fonctionnement pour les données:

  • Modifié, indiquant que le fichier a été modifié, mais qu'il n'a pas été soumis à la base de données
  • Il a été temporairement stocké. L'état après avoir effectué l'opération d'ajout indique que la version actuelle d'un fichier modifié est marquée pour être incluse dans le prochain instantané soumis.
  • Soumis, l'état après l'opération de validation indique que les données ont été stockées en toute sécurité dans la base de données locale.

Trois zones:
zone de travail, zone de stockage temporaire et entrepôt Git.

  • Espace de travail: l'endroit où nous modifions habituellement
  • Zone temporaire: enregistre les informations sur les modifications à soumettre, généralement dans le répertoire du référentiel Git, y compris l'index et les données (peut être compris comme un instantané)
  • Entrepôt: enregistrez le projet soumis (peut être compris comme un instantané de sauvegarde permanent)

Je n'écrirai pas sur le processus d'installation de Git, je peux le trouver partout sur Internet.
Regardez simplement la configuration après l'installation:

La configuration

Après l'installation parfaite, nous allons définir notre propre nom d'utilisateur et adresse e-mail dans la première étape comme ceci:

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

Ensuite, nous pouvons utiliser

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

Affichez le nom d'utilisateur global et l'adresse e-mail.
commande git config est utilisé pour définir la configuration de la variable GIT,
différents utilisateurs et entrepôts différents peuvent être régler différentes configurations
de ces variables sont stockées dans trois positions différentes:
/etc/gitconfig, ~/.config/git/config, .git/config
respectivement la configuration globale de tous les utilisateurs, le profil de l' utilisateur actuel, et l'entrepôt de configuration actuelle , Plus le niveau est élevé de gauche à droite, il couvrira l'ancienne configuration.
Configurer les utilisateurs de l'entrepôt:

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

Afficher les utilisateurs de l'entrepôt

git config user.name

Afficher la configuration globale / entrepôt

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

Obtenir le référentiel Git

Deux façons:

  1. Convertir le répertoire local en référentiel Git
  2. Cloner un entrepôt distant

1. Le premier type:
entrez le répertoire où le contrôle de version est requis et exécutez la commande:

$ git init

Insérez la description de l'image ici
Le répertoire .git apparaît:
ici, il vous suffit de savoir qu'il s'agit de l'épine dorsale de l'entrepôt
, puis d'ajouter le fichier à l'entrepôt:

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

2. Le deuxième

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

Créez un répertoire nommé mylibgit, puis initialisez un fichier .git et clonez à partir du référentiel distant.

États divers

Nous créons un fichier
Insérez la description de l'image ici
test2.txt avec le contenu ABC à
ce moment pour git statusvoir l'état actuel:

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)

Il montre que nous sommes maintenant dans la branche principale et répertorie également les fichiers non suivis et les suggestions.
Ensuite, nous git add 文件/目录ajoutons à la zone de transit:

$ git add test2.txt

Regardez à nouveau l'état

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)

Liste des fichiers ajoutés à la zone de transit
Nous pouvons utiliser git rm --cached 文件/目录pour supprimer la zone de stockage temporaire
Si vous utilisez git rm 文件/目录le fichier git travaillera conjointement mettant en scène le répertoire de la zone supprimée.
Après avoir ajouté à la zone de stockage temporaire
git add , Git suivra les modifications de ce fichier. Modifions le contenu du test2.txt suivant et ajoutons un D pour
voir l'état:

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)

Deux nouveaux conseils: le
premier nous dit que nous pouvons utiliser git add <file> pour mettre à jour la zone de transit, et le
second nous dit que nous pouvons utiliser git restore <file> pour revenir à ce que nous avons modifié auparavant

Nous utilisons le premier qui reviendra à l'état avant notre modification, c'est-à-dire que le contenu du fichier est uniquement ABC.
Voir que
nous pouvons utiliser git diffpour comparer le contenu de la zone de transit et de stockage:

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)

En voyant le nouveau fichier, la différence entre l'ancien fichier et l'ancien fichier n'est que D, et il n'y a pas de saut de ligne à la fin des deux fichiers.

Pour voir le stockage temporaire supplémentaire à ajouter au contenu du prochain commit, vous pouvez utiliser git diff --stagedou git diff --cachedcommande. Ces deux commandes compareront la différence entre le fichier temporaire et le dernier fichier soumis

Soumettre la mise à jour
Nous soumettons le test2.txt modifié git commità l'entrepôt 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)

Jetez un œil au statut:

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 nous pensons que la zone de transfert ci-dessus est gênante, Git fournit également des raccourcis git commot -apour soumettre nos fichiers modifiés et les fichiers de la zone de transfert, afin que nous git addpuissions soumettre directement même si nous sommes trop paresseux .

Afficher l'historique des soumissions
Ensuite, dans la section précédente test2.txt, j'ai ajouté respectivement E et F et les ai soumises
en deux soumissions. Ensuite, nous pouvons utiliser l'entrepôt git logpour afficher l'historique des soumissions:

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

(Appuyez sur q pour quitter) répertorie les informations soumises à chaque fois et la différence par rapport à la précédente, souvent l'hex est le numéro de version.
Annuler l'opération
Renvoyer:git commit --amend

Annuler le stockage temporaire d'un fichier après avoir annulé l'opération temporaire de plusieurs fichiers git reset HEAD <file>...

Annuler la soumission du fichier:, git checkout -- <file>...mais c'est un peu dangereux, vous pouvez comprendre que cette commande est: elle supprimera la dernière version de l'entrepôt pour écraser le fichier! Après la sortie, la dernière version du fichier dans l'entrepôt a également disparu.
Ces deux opérations d'annulation sont risquées, car le fichier de la zone de travail a été modifié au cours de notre période.

Configuration de l'entrepôt distant

1. Ajouter une URL: git remote add url名字 url
2. Vérifier l'URL existantegit 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)

Tirez pour
$ git fetch <remote>
tirer les données que nous n'avons pas encore, vous devez fusionner et
pousser manuellement
$ git push <remote> <branch>

Étiquette

Créer une étiquette: étiqueter
la version actuelle v1, -m spécifier les informations d'étiquette:
git tag -a v1 -m "my version 1.4"
envoyer la version actuelle au serveur avec l'étiquette:
$ git push Url1 v1
supprimer l'étiquette de l'entrepôt local
git tag -d <tagname>
supprimer l'étiquette de l'entrepôt distant
$ git push Url1 :refs/tags/v1.4-lw

Changer de version

Afficher le numéro de version

Retour à la version précédente:
git reset --hard HEAD^
la version précédente:
git reset --hard HEAD^
retour à la version précédente:
git reset --hard HEAD~3
retour à la version spécifiée
git reset --hard 91010df
retour pour afficher toutes les versions itératives après retour
git reflog

Publié 16 articles originaux · aimé 0 · visites 249

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43860530/article/details/105388779
conseillé
Classement