Parcours d'apprentissage du Xiaobai frontal - Git Learning

Présentation

git est un système de contrôle de version distribué

Centralisé et distribué: centralisé dispose d'un serveur central, qui nécessite un fonctionnement en réseau. Distribué, tout le monde a un référentiel

1. Installez git

  • Téléchargez git-> find git bash une fois l'installation terminée, open est une ligne de commande (indiquant une installation réussie)

  • Entrez ce qui suit sur la ligne de commande

引号内部填自己信息
$ git config --global user.name "Your Name" 
$ git config --global user.email "[email protected]"

2. Créez un référentiel

Le référentiel est également connu sous le nom d'entrepôt, nom anglaisrepository

Pour utiliser

Git a trois zones, une zone de travail, une zone temporaire et une bibliothèque de versions. L'espace de travail entre dans la zone de stockage temporaire après l'ajout et les fichiers dans la zone de stockage temporaire entrent dans le référentiel après la validation

1. Ajoutez

Remarque: les noms de fichiers suivants sont suffixés

git add "文件名"

2. Soumettre

Remarque: Soumettre consiste à soumettre tous les fichiers de la zone de stockage temporaire au référentiel

git commit -m "操作名称"

3. Vérifiez l'état

git status

4. Affichez le contenu du fichier

cat "文件名"

5. Afficher les journaux git

git log 

Tels que: Commit est suivi du numéro de version, généré aléatoirement

commit 980993de744a8886692ed79fc7f4cdd00ec15959 (HEAD -> master)
Author: zouyou <>
Date:   Sat Apr 11 14:35:04 2020 +0800

    update commit

commit ea799348f2b1ccc7d046f8bd61c6b193b79bdc18
Author: zouyou <>
Date:   Sat Apr 11 14:33:07 2020 +0800

    git tracks changes

-Version arrière :

  1. Utilisez HEAD
git reset --hard HEAD^   HEAD^:上个版本  HEAD^^:上上版本
  1. Utilisez le numéro de version, écrivez simplement les premiers chiffres
git reset --hard ea799348f 

Si vous avez oublié le numéro de version, vous pouvez utiliser reflog pour afficher les modifications de l'historique, qu'il y ait ou non une restauration

git reflog

6. Afficher les modifications de fichier

git diff

7. Annuler la modification

  1. L'annulation de la modification de la zone de travail équivaut à l'exploitation directe du fichier et à l'annulation des modifications.
git restore 文件名
  1. Annuler la soumission de la zone de stockage temporaire et revenir à la zone de travail, mais le fichier est toujours modifié. Pour annuler la modification du fichier, répétez 1 étape
git resore --staged 文件名

8. Supprimer des fichiers

  1. Pour supprimer l'espace de travail et la bibliothèque de versions en même temps, vous pouvez supprimer manuellement l'espace de travail. . Ce qui suit est de supprimer le référentiel
git rm 文件名
  1. Le fichier d'espace de travail a été supprimé par erreur, mais il a été téléchargé dans le référentiel et peut être restauré via le référentiel
git checkout 文件名

9. Entrepôt distant: github

  1. Créez un référentiel sur github, souvenez-vous du code ssh ou de l'adresse https
  2. Entrez les informations suivantes pour créer une connexion à distance, il y aura un mot de passe de compte d'entrée
$ git remote add origin (ssh码)/(hhtps)
  1. Téléchargez le fichier sur github
$ git push -u origin master

Remarque: Étant donné que la bibliothèque distante est vide, lorsque nous avons poussé la masterbranche pour la première fois , avec les -uparamètres ajoutés , Git poussera non seulement masterla nouvelle masterbranche distante du contenu de la branche locale , mais associera également la masterbranche locale à la masterbranche distante . Les commandes peuvent être simplifiées lorsque vous poussez ou tirez à l'avenir.

Une fois le téléchargement terminé, tant que la validation locale est effectuée, vous pouvez utiliser la commande suivante

git push origin master //这里与上面是差不多一样的语法

Résumé: pour associer une bibliothèque distante, créez d'abord une bibliothèque à distance, souvenez-vous du code SSH, puis connectez-vous git remote add origin ssh码

Ajouter: La première fois que vous téléchargez git push origin -u master, et il ne pas ajouter -udesgit push origin master

Dans ces commandes, l'origine est en fait le nom de l'entrepôt distant, généralement nommé origine

  1. Clonage du référentiel distant vers le local

Trouvez d'abord un dépôt sur github et copiez son code ssh, entrez la ligne de commande sur git bash

git clone ssh码

Remarque: git bash s'est ouvert dans quel dossier est cloné sous quel dossier.

10. Gestion des succursales

1. Présentation de la succursale

La branche peut être implémentée de manière similaire à la version de développement du système, puis poussée vers le tronc une fois terminé, qui est un système stable. Comme suit, les deux branches sont fusionnées dans le tronc

apprendre-branches

Dans git, la masterbranche est le tronc. Au début, elle masterpointe vers cette ligne principale, headpointant master, donc elle headagit comme un pointeur sur le point courant, qui peut pointer sur le tronc ou la branche.

git-br-initial

Afficher les branches, afficher toutes les branches, il y aura * avant la branche actuelle

git branch
2. Création d'une succursale

Créer une branche devet passer à cette branche -ble rôle de » est de créer et commutateur

git checkout -b dev
等价于
git branch dev  //创建分支dev
git checout dev // 切换到分支dev

Remarque: La zone de travail, la zone intermédiaire et la bibliothèque de versions de chaque branche sont indépendantes et seront différentes après le changement de branche.

Git encourage l'utilisation intensive des branches:

Voir la branche:git branch

Créez une branche:git branch

Changer de branche: git checkout ougit switch

Créer + changer de branche: git checkout -b ougit switch -c

Fusionner une branche dans la branche actuelle:git merge

Supprimez la branche:git branch -d

Afficher le diagramme de branche:git log --graph

- Conflit de fichier

git-br-feature1

Dans ce cas, les deux branches ne peuvent pas être fusionnées et doivent être résolues manuellement.

$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

git statusVous pouvez également afficher les fichiers en conflit. Vous pouvez voir la marque lorsque vous ouvrez le fichier en conflit.

Git utilise <<<<<<<, =======pour >>>>>>>marquer le contenu de différentes branches

3. La branche des bogues

Lorsqu'un travail est en cours sur la branche dev, soudainement un bug doit être corrigé (comme sur le tronc), il est donc nécessaire de masquer le travail effectué par dev en premier et de corriger le bogue en premier. Git fournit également une stashfonction pour "stocker" le site de travail actuel et continuer à travailler après avoir restauré le site plus tard:

git stash //可以将在暂存区的文件(还未提交)隐藏,使用status也看不到

Vous pouvez interroger les choses cachées dans la cachette

git stash  //=>例如:stash@{0}: WIP on dev: f52c633 add merge

Après avoir corrigé le bug principal, restaurez le site de développement:

git stash aplly //对现场进行恢复,此时stash里还有,需要进一步
git stash drop //对stash里的东西删除
同时还可以从stash里一步步恢复:git stash apply stash@{0}
等价于一句话
git stash pop

Remarque: étant donné que dev est à l'origine une branche de master, dev peut également avoir un bogue que le tronc vient de corriger, donc git a une fonction pour implémenter la réparation et la réplication de bogues. Cela peut être introduit, vous pouvez résoudre le bug dans la branche et le copier dans le coffre

git cherry-pick <版本号>
这里的版本好就是刚刚在主干修复bug后commit之后的版本号

Pour développer une nouvelle fonctionnalité, il est préférable de créer une nouvelle branche, similaire à la branche de bogue;

Si vous souhaitez git branch -D supprimer une branche qui n'a pas été fusionnée, vous pouvez la supprimer de force.

4. Coopération à distance

Pour afficher les informations de la bibliothèque distante, utilisez

git remote //通常远程库是origin

Peut également être utilisé git remote -v, peut renvoyer l'adresse de ramper et de pousser, comme suit

origin  https://github.com/zy116/first-blog.git (fetch)
origin  https://github.com/zy116/first-blog.git (push)

-Branches poussées

git push origin dev //推送分支
git push origin master //推送主干

Cependant, il n'est pas nécessaire de pousser la branche locale vers la télécommande, donc quelles branches doivent être poussées et lesquelles ne le font pas?

  • masterLa branche est la branche principale, elle doit donc être synchronisée avec la télécommande à tout moment;
  • devLa branche est une branche de développement, tous les membres de l'équipe doivent y travailler, elle doit donc également être synchronisée avec la télécommande;
  • La branche des bogues n'est utilisée que pour corriger les bogues localement, il n'est donc pas nécessaire de pousser vers la télécommande, sauf si le patron veut voir combien de bogues vous avez corrigés chaque semaine;
  • Que la branche de fonctionnalité soit poussée vers la télécommande dépend de si vous travaillez dessus avec votre petit partenaire.

Bref, dans Git, la branche peut être cachée et jouée localement, qu'elle soit poussée, selon votre humeur!

-Prenez la branche

Habituellement , dans masteret devbranches poussent leurs propres changements quand une personne a mis leurs branches sont poussés vers le haut, vers le bas , un autre clone ne peut voir que la branche principale, si vous voulez devdévelopper sur une branche, il faut établir une distance à une branche locale

git switch -c dev origin/dev

Quand une autre personne pousse quelque chose, vous devez également pousser, et à ce moment il y aura des conflits. La dernière soumission d'une autre personne est en conflit avec la soumission que vous avez essayé de pousser.

À ce moment, vous serez invité à git pullopérer, mais vous serez invité à indiquer des erreurs.

Vous devez spécifier la locale devbranche et à distance origin/devbranche de liaison, mis en place devet des origin/devliens

 git branch --set-upstream-to=origin dev

Tirez à nouveau

git pull

À ce stade, l'extraction est réussie et sera marquée dans le fichier de conflit, qui doit être résolu manuellement

Par conséquent, le mode de travail de la collaboration entre plusieurs personnes est généralement le suivant:

  1. Tout d'abord, vous pouvez essayer de git push origin <branch>pousser vos propres modifications;
  2. Si la transmission échoue, car la branche distante est plus récente que votre section locale, vous devez d'abord git pullessayer de fusionner;
  3. S'il y a un conflit dans la fusion, résolvez le conflit et soumettez-le localement;
  4. Une fois qu'il n'y a pas de conflit ou que le conflit est résolu, git push origin vous pouvez utiliser push pour réussir!

Si git pullvous y êtes invité no tracking information, la relation de liaison entre la branche locale et la branche distante n'a pas été créée. Utilisez la commande git branch --set-upstream-to origin/.

Résumé :

  • Afficher les informations de la bibliothèque distante, utiliser git remote -v;
  • Si la branche nouvellement créée n'est pas poussée vers la télécommande, elle sera invisible pour les autres;
  • Poussez la branche du local, utilisez git push origin branch-name, si le push échoue, git pullsaisissez d' abord la nouvelle soumission distante;
  • Créez git checkout -b branch-name origin/branch-namelocalement une branche correspondant à la branche distante et utilisez le même nom pour les branches locales et distantes;
  • Établir la relation entre la branche locale et la branche distante, utilisez git branch --set-upstream branch-name origin/branch-name;
  • Récupérez la branche de la télécommande et utilisez-la git pull. En cas de conflit, le conflit doit être traité en premier.

Grâce au tutoriel git de Liao Xuefeng, une partie du texte est directement copiée, le tutoriel original est ici tutoriel git

Je suppose que tu aimes

Origine www.cnblogs.com/zy116/p/12682100.html
conseillé
Classement