Tutoriel version 2020 de git (version texte + version vidéo)

Insérez la description de l'image ici

Si vous ne connaissez pas git, comment pouvez-vous dire que vous êtes un bon développeur? Certaines personnes pensent que git n'est que quelques commandes? Cependant, comme nous ne comprenons pas git dans notre travail, nous nous mettons nous-mêmes et toute l'équipe dans un mode inefficace. Par conséquent, nous devons non seulement comprendre les principes de git et les solutions aux problèmes courants de gestion des versions, mais aussi comprendre en nous basant sur Le flux de travail du travail d'équipe git.
De nos jours, presque tout notre développement est indissociable des projets open source, et github est la plus grande base de gestion de projets open source au monde. Certains l'appellent également le plus grand site de rencontres homosexuelles au monde, alors comment gérer des projets open source sous ce site magique Oui, comment participer à l'acquisition voire au développement de projets open source?

Github est la gestion de projets open source, alors comment les grandes entreprises gèrent-elles leurs propres projets? Cela doit mentionner gitlab, alors comment créer gitlab, comment gérer les autorisations, comment gérer des projets, tels que la
révision de code , la CI / CD et la gestion du contenu des connaissances?

Sera répondu dans cet article.

**

1. Principes de base de Git

**
1.1 Installer Git sur Linux La
commande d'installation est la suivante:

sudo apt-get install git

Une fois l'installation terminée, entrez "git --version" pour afficher la version de git. Si "git version xxx" apparaît, l'installation est réussie.
Digression: Pour les anciens Debian ou Ubuntu Linux, la commande doit être changée en sudo apt-get install git-core, car il y avait autrefois un logiciel appelé GIT (GNU Interactive Tools), mais Git ne peut être appelé que git-core. Parce que Git est si célèbre, GNU Interactive Tools a été changé en gnuit, et git-core a été officiellement changé en git.
S'il s'agit d'une autre version de Linux, vous pouvez l'installer directement à partir du code source. Téléchargez d'abord le code source sur le site officiel de Git, puis décompressez-le, puis entrez: ./config, make, sudo make install ces commandes pour l'installer.

1.2 Installer Git sur Mac OS X
Si vous utilisez un Mac pour le développement, il existe deux façons d'installer Git.
La première consiste à installer homebrew, puis à installer Git via homebrew.Pour des méthodes spécifiques, veuillez consulter la documentation de homebrew: http://brew.sh/.
La deuxième méthode est plus simple et la méthode recommandée consiste à installer Xcode directement depuis l'AppStore. Xcode intègre Git, mais il n'est pas installé par défaut. Vous devez exécuter Xcode, sélectionnez le menu "Xcode" -> "Préférences", et trouvez-le dans la fenêtre pop-up "Téléchargements", sélectionnez "Outils de ligne de commande", cliquez sur "Installer" pour terminer l'installation.
Insérez la description de l'image ici

1.3 Installer Git sur Windows Dit
que tout le monde utilise le système Windows, donc git a d'abord été développé et exécuté sur le système Linux, puis porté progressivement sur Windows.
Accédez à la page de téléchargement du site officiel de git (https://git-scm.com/downloads) pour télécharger Git-2.19.1-64-bit.exe, puis installez-le. Une fois l'installation terminée, l'outil git bash sera créé sur le bureau, et si Lorsque nous cliquons avec le bouton droit de la souris sur le bureau, deux éléments de menu «git gui here» et «git bash here» apparaîtront également dans le menu contextuel.

1.4 Configurer l'environnement git
La première chose à faire après l'installation de Git est de définir votre nom d'utilisateur et votre adresse e-mail. Ceci est très important, car chaque commit Git utilisera ces informations, et elles seront écrites dans chacun de vos commits et ne pourront pas être modifiées:

$ git config --global user.name "lizhiyong"

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

Encore une fois, si vous utilisez l'option --global, la commande ne doit être exécutée qu'une seule fois, car Git utilisera ces informations quoi que vous fassiez sur le système plus tard. Lorsque vous souhaitez utiliser un nom d'utilisateur et une adresse e-mail différents pour un projet spécifique, vous pouvez exécuter la commande sans l'option --global dans ce répertoire de projet pour le configurer.
De nombreux outils GUI vous aideront à configurer ces informations la première fois que vous les exécuterez.
Vous pouvez également utiliser git config --list pour afficher toutes les configurations git.

1.5 Obtenir de l'aide
Si vous avez besoin d'aide pour utiliser Git, il existe trois façons de trouver le manuel des commandes Git:

$ git help <verb>

$ git <verb> --help

$ man git-<verb>

Par exemple, pour obtenir le manuel de la commande config, exécutez

$ git help config

Bien sûr, si vous rencontrez des problèmes, vous pouvez également consulter la documentation officielle de git.
https://git-scm.com/book/zh/v2

La version vidéo du didacticiel a été mise à jour vers [Gérer les urgences]

Compte officiel VX Suivez Zero Sound Academy pour obtenir

2. Commandes GIT couramment utilisées

2.1 Créer un référentiel
Qu'est-ce qu'un référentiel? Le référentiel est également connu sous le nom d'entrepôt, le nom anglais est repository. Vous pouvez simplement le comprendre comme un répertoire. Tous les fichiers de ce répertoire peuvent être gérés par Git. Git peut suivre la modification et la suppression de chaque fichier afin qu'il puisse être suivi à tout moment. Histoire, ou "restaurer" à un moment donné dans le futur.
Par conséquent, il est très simple de créer un référentiel. Utilisez la commande git init pour créer un nouveau référentiel git, qui est utilisé pour convertir un projet existant mais non contrôlé par version en un référentiel Git, ou pour créer un nouveau référentiel vide. La plupart des commandes Git ne sont pas disponibles dans les référentiels non initialisés, c'est donc votre première commande pour exécuter un nouveau projet.
L'exécution de la commande git init créera un nouveau répertoire .git dans le répertoire racine de votre projet, qui contient toutes les métadonnées nécessaires à votre projet. À l'exception du répertoire .git, les projets existants ne seront pas modifiés (tout comme SVN, Git n'applique pas de répertoire .git dans chaque sous-répertoire).
Par exemple:

$ mkdir learngit
$ cd learngit
$ git init

La commande pwd est utilisée pour afficher le répertoire courant. Sur mon Mac, ce référentiel se trouve dans / Users / michael / learngit.
Si vous utilisez un système Windows, afin d'éviter toutes sortes de problèmes inexplicables, veuillez vous assurer que le nom du répertoire (y compris le répertoire parent) ne contient pas de chinois.
La deuxième étape consiste à transformer ce répertoire en un entrepôt pouvant être géré par Git via la commande git init:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

Git construit instantanément le référentiel et vous indique qu'il s'agit d'un référentiel Git vide. Les lecteurs attentifs peuvent trouver qu'il existe un répertoire .git supplémentaire dans le répertoire actuel. Ce répertoire est utilisé par Git pour suivre et gérer le référentiel. Ne modifiez pas les fichiers de ce répertoire manuellement, sinon les modifications seront gâchées et le référentiel Git sera détruit.
Si vous ne voyez pas le répertoire .git, c'est parce que ce répertoire est caché par défaut, et vous pouvez le voir avec la commande ls -ah.
Il n'est pas nécessaire de créer un dépôt Git dans un répertoire vide. Il est également possible de choisir un répertoire qui contient déjà quelque chose. Cependant, il n'est pas recommandé d'utiliser le projet d'entreprise que vous développez pour apprendre Git, sinon vous ne serez pas responsable des conséquences.

Créer un entrepôt nu
Sélectionnez d'abord un répertoire comme entrepôt Git, en supposant qu'il s'agit de /srv/sample.git, entrez la commande dans le répertoire / srv:

$ sudo git init --bare sample.git

L'utilisation de -bare créera un entrepôt nu. L'entrepôt nu n'a pas d'espace de travail. Étant donné que l'entrepôt Git sur le serveur est uniquement destiné au partage, les utilisateurs ne sont pas autorisés à se connecter directement au serveur pour modifier l'espace de travail, et l'entrepôt Git sur le serveur se trouve généralement dans. Fin de git. Ensuite, changez le propriétaire en git:
$ sudo chown -R git: git sample.git

Ajouter des fichiers à des entrepôts non nus
Tout d'abord, permettez-moi de préciser que tous les systèmes de contrôle de version ne peuvent en fait suivre que les modifications apportées aux fichiers texte, tels que les fichiers TXT, les pages Web, tous les codes de programme, etc. Git ne fait pas exception. Le système de contrôle de version peut vous informer de chaque changement, comme ajouter un mot «Linux» à la ligne 5 et supprimer un mot «Windows» à la ligne 8. Bien que les fichiers binaires d'images et de vidéos puissent également être gérés par le système de contrôle de version, ils ne peuvent pas suivre les modifications des fichiers. Ils ne peuvent enchaîner que chaque modification des fichiers binaires, c'est-à-dire qu'ils savent seulement que l'image passe de 100 Ko à 120 Ko, mais à la fin Le système de contrôle de version ne sait pas ce qui a été modifié, ni ne peut le savoir.
Malheureusement, le format Word de Microsoft est un format binaire. Par conséquent, le système de contrôle de version ne peut pas suivre les modifications apportées aux fichiers Word. L'exemple précédent est uniquement destiné à la démonstration. Si vous souhaitez utiliser le système de contrôle de version, vous devez l'écrire en texte brut. fichier.
Comme le texte est codé, par exemple, le chinois a couramment utilisé le codage GBK et le japonais le codage Shift_JIS. S'il n'y a pas de problèmes d'historique, il est fortement recommandé d'utiliser le codage UTF-8 standard. Toutes les langues utilisent le même codage. Il n'y a pas de conflit et toutes Soutenu par la plate-forme.

Une attention particulière doit être accordée aux chaussures pour enfants sous Windows:
n'utilisez jamais le bloc-notes fourni avec Windows pour modifier des fichiers texte. La raison en est que l'équipe Microsoft qui a développé le Bloc-notes a utilisé un comportement très retardé mental pour enregistrer les fichiers encodés en UTF-8. Ils ont intelligemment ajouté des caractères 0xefbbbf (hexadécimal) au début de chaque fichier. Vous rencontrerez beaucoup d'incroyables Par exemple, la première ligne de la page Web peut afficher un "?", Une erreur grammaticale sera signalée dès que le programme est clairement compilé, et ainsi de suite, toutes sont causées par le comportement mentalement retardé du Bloc-notes. Je vous suggère de télécharger Notepad ++ au lieu de Notepad, qui est non seulement puissant, mais également gratuit! N'oubliez pas de définir le codage par défaut de Notepad ++ sur UTF-8 sans BOM:
Insérez la description de l'image ici
Revenez aux affaires, maintenant nous écrivons un fichier readme.txt avec le contenu suivant:

Git is a version control system.
Git is free software.

Assurez-vous de le mettre dans le répertoire learngit (les sous-répertoires conviennent également), car il s'agit d'un référentiel Git, et quelle que soit la puissance de Git à d'autres endroits, ce fichier est introuvable.
Par rapport aux trois étapes nécessaires pour mettre l'éléphant au réfrigérateur, il suffit de deux étapes pour mettre un fichier dans le référentiel Git.
La première étape est d'utiliser la commande git add pour dire à Git d'ajouter le fichier à l'entrepôt:
$ git add readme.txt
exécute la commande ci-dessus, il n'y a pas d'affichage, c'est vrai, la philosophie Unix est "Aucune nouvelle n'est une bonne nouvelle". Ajouté avec succès.
Dans la deuxième étape, utilisez la commande git commit pour dire à Git de soumettre le fichier à l'entrepôt:

$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

Expliquez brièvement la commande git commit. L'entrée derrière -m est la description de cette soumission. Vous pouvez entrer n'importe quel contenu. Bien sûr, il vaut mieux être significatif, afin de pouvoir trouver facilement l'enregistrement des modifications dans l'historique.
Ressentez le problème et ne voulez pas entrer -m "xxx", OK? Il existe en effet un moyen de le faire, mais il est fortement déconseillé de le faire, car la description d'entrée est importante pour vous et les autres. Si vous ne voulez vraiment pas entrer la description, veuillez Google par vous-même. Je ne vous indiquerai pas ce paramètre.
Une fois la commande git commit exécutée avec succès, elle vous indiquera qu'un fichier a été modifié (le fichier readme.txt que nous avons ajouté) et que deux lignes de contenu ont été insérées (readme.txt a deux lignes).
Pourquoi Git doit-il ajouter des fichiers en deux étapes, ajouter et valider? Étant donné que la validation peut soumettre plusieurs fichiers à la fois, vous pouvez ajouter plusieurs fichiers plusieurs fois, tels que:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

2.2 La première étape de la configuration d'un serveur git est de

créer un utilisateur git pour exécuter le service git:

$ sudo adduser git
$ passwd git
$ groupadd git
$ usermod -G git git

La deuxième étape consiste à créer une connexion de certificat: d'
abord, nous passons à l'utilisateur git, et créons les clés publique et privée pour l'utilisateur git:

$ su git
$ ssh-keygen -t rsa //以rsa的加密方式生成秘钥对
$ cd /home/git/.ssh
$ touch authorized_keys

Collectez les clés publiques de tous les utilisateurs qui doivent se connecter, qui est leur propre fichier id_rsa.pub, et importez toutes les clés publiques dans le fichier /home/git/.ssh/authorized_keys, une par ligne.

La troisième étape consiste à initialiser le référentiel Git:
sélectionnez d'abord un répertoire comme référentiel Git, en supposant qu'il s'agit de /srv/nginx-docs.git, entrez la commande dans le répertoire / srv:

$ sudo git init --bare nginx-docs.git

Git créera un entrepôt nu. L'entrepôt nu n'a pas d'espace de travail. Étant donné que l'entrepôt Git sur le serveur est uniquement destiné au partage, les utilisateurs ne sont pas autorisés à se connecter directement au serveur pour modifier l'espace de travail, et l'entrepôt Git sur le serveur se termine généralement par .git . Ensuite, changez le propriétaire en git:
$ sudo chown -R git: git nginx-docs.git

La quatrième étape consiste à désactiver la connexion au shell: en
tant qu'administrateur de serveur, il y a une autre chose à considérer à propos de SSH, et c'est le problème de sécurité de SSH. Lors de l'introduction du protocole local ci-dessus, nous avons dit que cette méthode ne peut pas contrôler le fonctionnement de l'utilisateur sur l'entrepôt Git et ne peut pas empêcher l'utilisateur d'endommager l'entrepôt Git intentionnellement ou non. Le même problème existe lors de l'utilisation du protocole SSH. Les utilisateurs peuvent extraire et soumettre du code via SSH. , Ce qui signifie que les utilisateurs peuvent se connecter au serveur via SSH et effectuer toutes les opérations sur le référentiel Git, ce qui est très inquiétant.
Par conséquent, nous devons également faire quelques restrictions sur le compte git. Par défaut, le shell de connexion de notre nouveau compte est / bin / bash, et cette configuration se trouve dans le fichier / etc / passwd:

git:x:1000:1000:git,,,:/home/git:/bin/bash

Vous pouvez utiliser la commande chsh pour modifier le shell de connexion de l'utilisateur afin qu'il ne puisse pas accéder au serveur via SSH. Comment le modifier? Nous pouvons regarder le fichier / etc / shells, qui définit tous les shells de connexion qui peuvent être utilisés. Vous pouvez remplacer / bin / bash par l'un de ceux-ci:

root@myserver:~# cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Evidemment, ces shells ne sont pas ce que nous voulons, y a-t-il un shell qui permet uniquement aux utilisateurs d'effectuer des opérations git et pas d'autres opérations? Heureusement, le paquet Git fournit un shell de connexion nommé git-shell, nous pouvons lui ajouter, généralement situé dans / usr / bin / git-shell. Nous utilisons chsh pour modifier le shell de connexion de git:

root@myserver:~# chsh git
Changing the login shell for git
Enter the new value, or press ENTER for the default
    Login Shell [/bin/bash]: /usr/bin/git-shell

De cette façon, lorsque l'utilisateur git se connecte au serveur via SSH, il sera directement rejeté.

La cinquième étape, cloner l'entrepôt distant:
maintenant, d'autres utilisateurs peuvent cloner l'entrepôt distant via la commande git clone, et exécuter sur leurs ordinateurs respectifs:
$ git clone git @ server: /srv/nginx-docs.git
Clonage dans'nginx -docs "...
avertissement: vous semblez avoir cloné un référentiel vide. Le
reste du push est simple.

Gérer les clés publiques
Si l'équipe est petite, il est possible de collecter les clés publiques de tout le monde et de les mettre dans le fichier /home/git/.ssh/authorized_keys du serveur. Si l'équipe compte quelques centaines de personnes, il n'y a aucun moyen de jouer comme ça. À ce stade, vous pouvez utiliser Gitosis pour gérer la clé publique.
Nous n'introduirons pas ici comment jouer à Gitosis, les équipes de plusieurs centaines de personnes sont essentiellement dans le top 500. Je pense que ce n'est pas un gros problème de trouver un administrateur Linux de haut niveau.


Il existe de nombreuses autorisations de gestion . Les entreprises qui non seulement considèrent le code source comme une réalité, mais considèrent également les employés comme des voleurs, mettront en place un ensemble complet de contrôle des autorisations dans le système de contrôle de version. Le fait que tout le monde dispose des autorisations de lecture et d'écriture sera précis pour chaque branche ou même chaque répertoire. en dessous de. Étant donné que Git est développé pour l'hébergement de code source Linux, Git hérite également de l'esprit de la communauté open source et ne prend pas en charge le contrôle des autorisations. Cependant, comme Git prend en charge les hooks, une série de scripts peut être écrite côté serveur pour contrôler les soumissions et d'autres opérations afin d'atteindre l'objectif du contrôle des autorisations. Gitolite est cet outil.
Nous n'introduirons pas Gitolite ici, ne gaspillez pas votre vie limitée dans la lutte pour l'autorité.

Résumé La configuration
d'un serveur Git est très simple, généralement en 10 minutes;
pour gérer facilement les clés publiques, utilisez Gitosis;
pour contrôler les autorisations comme SVN, utilisez Gitolite.
Bien sûr, il existe un outil plus puissant, gitlab. Si vous faites du développement formel, je vous suggère d'utiliser cet outil intégré.

À suivre. Continuez à partager plus tard. Les amis que vous aimez peuvent d'abord collectionner ~

Je suppose que tu aimes

Origine blog.csdn.net/lingshengxueyuan/article/details/100543850
conseillé
Classement