Maison > outils de développement > git > le corps du texte

Les compétences d'utilisation de Git résumées par Daniel sont si pratiques

爱喝马黛茶的安东尼
Libérer: 2019-10-21 17:59:20
avant
3485 Les gens l'ont consulté

Les compétences d'utilisation de Git résumées par Daniel sont si pratiques

Qu'est-ce que Git

Mots officiels : Git est un système de contrôle de version distribué gratuit et open source conçu pour gérer rapidement et efficacement des tâches allant de petit à grand Tout, des projets à grande échelle.

Il peut enregistrer automatiquement chaque modification de fichier pour moi et permet également à mes collègues de collaborer sur l'édition, de sorte que je n'ai pas à gérer moi-même un tas de fichiers similaires, ni à transférer des fichiers. Si vous souhaitez constater un certain changement, il vous suffit de jeter un œil dans le logiciel.

Pourquoi devrais-je apprendre Git

Être demandé lors de l'entretien. Peut gérer des entretiens.

De nombreuses entreprises utilisent Git pour gérer des projets pendant le développement. Si vous ne l’apprenez pas maintenant, vous devrez certainement l’apprendre plus tard.

À mon avis, Git est quelque chose que tous les programmeurs d'aujourd'hui doivent maîtriser, et il doit être utilisé pour développer des projets avec des collègues à l'avenir. La maîtrise des commandes Git peut améliorer l'efficacité du développement.

Installez Git

Windows

Téléchargez-le directement depuis le site officiel. Une fois le téléchargement terminé, faites un clic droit sur un fichier et s'il existe Git Bash Here, l'installation réussira. Après l'installation, vous devez également saisir sur la ligne de commande :

$git config --global user.name"你的名字"
$git config --global user.email"你的邮箱"
Copier après la connexion

global signifie global Tous les référentiels Git sur cette machine utiliseront cette configuration. Autorisez les référentiels individuels à utiliser d'autres noms et adresses e-mail.

Mac

Mac peut également être installé comme Windows en suivant les étapes ci-dessus.

Vous pouvez également 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électionner le menu "Xcode" -> "Préférences" et rechercher "Téléchargements". " dans la fenêtre contextuelle. Sélectionnez "Outils de ligne de commande" et cliquez sur "Installer" pour terminer l'installation.

Entrepôt

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

L'entrepôt local est destiné à l'entrepôt distant. Entrepôt local = espace de travail + zone de version.

L'espace de travail est une collection de fichiers sur disque.

La zone de version (bibliothèque de versions) est le fichier .git.

Dépôt = zone de transit (scène) + branche (maître) + pointeur Head.

Prenons comme exemple la commande git que j'utilise le plus fréquemment, qui consiste à soumettre à github.

git init À l'origine, l'entrepôt local ne contenait que l'espace de travail, qui est l'état de fonctionnement le plus courant. À l'heure actuelle, git init signifie qu'un fichier .git est créé dans la zone locale et que la zone de version est établie.

git add . signifie soumettre tous les fichiers de l'espace de travail à la zone de stockage temporaire de la zone de version.

Bien sûr, vous pouvez également les ajouter un par un à la zone de transit via git add ./xxx/.

git commit -m "xxx" Soumet tous les fichiers de la zone de stockage temporaire à la zone d'entrepôt, et la zone de stockage temporaire est vide.

git remote add origin https://github.com/name/name_cangku.git connecte le référentiel local au référentiel distant.

git push -u origin master Soumettez les fichiers de la zone d'entrepôt à l'entrepôt distant.

Une fois soumis, si vous n'apportez aucune modification à l'espace de travail, alors l'espace de travail est "propre". Il y aura un message comme rien à commettre, travail sur le nettoyage de l'arbre.

Recommandations associées : "Tutoriel d'introduction à PHP"

Soumettre à GitHub

Quand je n'étais pas familier avec les commandes git auparavant , I Pour soumettre un projet à GitHub, vous extrayez les fichiers directement de la page Web et les soumettez. Un peu honteux.

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

git init signifie transformer ce fichier en un entrepôt pouvant être géré par Git. Après l'initialisation, ouvrez le fichier caché et vous pouvez voir qu'il existe un fichier .git.

git add. Un point après indique que tous les fichiers seront soumis à la zone de stockage temporaire.

git add ./readme.md/ signifie soumettre le fichier readme.md sous ce fichier dans la zone de stockage temporaire.

git commit -m "Voulez-vous commenter quelque chose ?" git commit signifie soumettre tous les fichiers de la zone de préparation à l'entrepôt local. -m suivi d'un commentaire.

git remote add origin https://github.com/name/name_cangku.git signifie connecter votre entrepôt local à l'entrepôt distant sur GitHub. Vous n'avez besoin de vous connecter qu'une seule fois et vous n'avez pas besoin d'utiliser cette commande lors de la soumission ultérieure. name est votre nom github, name_cangku est le nom de votre entrepôt. Attention à ne pas manquer le .git à la fin. Parce que c’est comme ça que je suis arrivé et que j’ai fait de nombreux détours. Quant à la façon de créer un nouvel entrepôt sur GitHub, il existe de nombreux tutoriels sur Internet, je n'entrerai donc pas dans les détails ici.

git push -u origin master Soumet le référentiel local au référentiel distant. (Dernière étape) Actualisez votre référentiel distant pour voir les fichiers que vous avez soumis.

La dernière chose mentionnée est que vous pouvez répéter git add dans la zone de transit avant git commit -m "". Mais git commit soumettra simultanément tous les fichiers que vous avez précédemment stockés dans la zone de transit à l’entrepôt local.

Retour et transfert de version

提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,Git会把他们串成一条时间线。如何回溯到我们提交的上一个版本,用git reset --hard + 版本号即可。版本号可以用git log来查看,每一次的版本都会产生不一样的版本号。

回溯之后,git log查看一下发现离我们最近的那个版本已经不见了。但是我还想要前进到最近的版本应该如何?只要git reset --hard + 版本号就行。退一步来讲,虽然我们可以通过git reset --hard + 版本号,靠记住版本号来可以在不同的版本之间来回穿梭。

但是,有时候把版本号弄丢了怎么办?git reflog帮你记录了每一次的命令,这样就可以找到版本号了,这样你又可以通过git reset来版本穿梭了。

撤销

场景1:在工作区时,你修改了一个东西,你想撤销修改,git checkout -- file。廖雪峰老师指出撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本。

场景2:你修改了一个内容,并且已经git add到暂存区了。想撤销怎么办?回溯版本,git reset --hard + 版本号,再git checkout -- file,替换工作区的版本。

场景3:你修改了一个内容,并且已经git commit到了master。跟场景2一样,版本回溯,再进行撤销。

删除

如果你git add一个文件到暂存区,然后在工作区又把文件删除了,Git会知道你删除了文件。如果你要把版本库里的文件删除,git rm 并且git commit -m "xxx".

如果你误删了工作区的文件,怎么办?使用撤销命令,git checkout --就可以。这再次证明了撤销命令其实就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

分支

分支,就像平行宇宙,你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。用 Git 和 Github 提高效率的 10 个技巧!这篇也推荐看下。

创建与合并分支

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

在没有其他分支插进来时,只有一个master主分支。每次你git push -u origin master 提交就是增加一条时间轴,master也会跟着移动。

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

创建一个other的分支,通过other提交,虽然时间轴向前走了,但是主分支master还在原来的位置。

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

理论分析完,看一下命令怎么写。

创建分支other,切换到other分支。

gitbranch other
gitcheckout other
Copier après la connexion

查看当前所有分支

gitbranch
* othermaster
Copier après la connexion

当前的分支会有一个*

用other提交

gitadd ./xxx/
git commit -m"xxx"
Copier après la connexion

other分支完成,切换回master

git checkoutmaster
Copier après la connexion

此时,master分支上并没有other的文件,因为分支还没有合并。

合并分支

gitmergeother
Copier après la connexion

合并完成之后,就可以在master分支上查看到文件了。

删除other分支

gitbranch -d other
Copier après la connexion

我由此想到,在以后工作中,应该是一个开放小组共同开发一个项目,组长会创建很多分支,每一个分支可以交给一个人去开发某一个功能,一个小组共同开发而且不会相互干扰。谁的功能完成了,可以由组长合并一下完成了的分支。哦,完美!

解决合并分支问题

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

Supposons qu'une telle situation se produise, la branche other a été validée, mais à ce moment le pointeur renvoie vers master, et master n'est pas fusionné, mais git add / commit est soumis. De cette manière, un conflit se produit et le contenu du fichier maître de la branche principale est différent de celui des autres branches. Impossible de fusionner ! Modifiez donc le contenu du fichier pour le rendre cohérent.

git add git commit commit.

Branche fusionnée.

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

git log --graph Afficher le graphique de fusion de branches

git branch -d other Supprimez la branche et la tâche se termine.

Stratégie de gestion des branches

git merge --no-ff other Désactivez le mode Avance rapide, car en utilisant le mode Avance rapide, les informations de l'historique de la branche seront perdues après la suppression d'une branche . Tutoriel pratique Git super détaillé, même un imbécile peut le comprendre en un coup d'œil !

Branche BUG

Chaque bug du travail peut être corrigé via une nouvelle branche temporaire. Après réparation, fusionnez les branches, puis supprimez la branche temporaire. Mais si vous avez une branche au travail, votre supérieur vous demandera de corriger les bugs dans une autre branche.

Vous devez enregistrer la branche sur laquelle vous travaillez maintenant, utiliser git stash pour "stocker" le site de travail actuel et continuer à travailler après l'avoir restauré ultérieurement. Après avoir résolu le bogue, git checkout other et retournez dans votre propre branche. Utilisez git stash list pour voir où est passé le travail que vous venez de "cacher".

À ce stade, vous devez reprendre le travail :

git stash apply restaure mais ne supprime pas le contenu du cache, git stash drop supprime le contenu du cache.

Lorsque git stash pop est restauré, le contenu du cache est également supprimé.

Pour le moment, si vous utilisez git stash list pour l'afficher, vous ne pouvez voir aucun contenu de cache.

Résumé : lors de la correction d'un bug, nous le corrigerons en créant une nouvelle branche de bug, puis en le fusionnant et enfin en le supprimant lorsque le travail en cours n'est pas terminé, commencez par git stash le travail ; site puis corrigez-le. Après avoir corrigé le bug, git stash pop et retournez sur le site de travail.

Supprimer la branche

git branch -d + branch peut échouer à être supprimé car Git protégera les branches qui n'ont pas été fusionnées.

git branch -D + branch supprime et supprime de force les branches qui n'ont pas été fusionnées.

Collaboration multi-personnes

git remote Affichez les informations de la bibliothèque distante et origin sera affichée. Le nom par défaut de l'entrepôt distant est origin

git remote -v. affiche des informations plus détaillées

git push -u origin master pousse la branche principale vers l'entrepôt distant d'origine.

git push -u origin other Poussez other vers le référentiel distant d'origine.

Attraper la branche

Les compétences dutilisation de Git résumées par Daniel sont si pratiques

Lorsque le conflit dans l'image ci-dessus se produit,

git pull extrait la dernière commit from Récupérez-le dans l'entrepôt distant, fusionnez-le localement et résolvez les conflits. Lors de l'exécution de git pull

Si git pull échoue également, vous devez également spécifier le lien entre les branches. Git vous rappellera quoi faire dans cette étape. Puis git pull à nouveau.

Le mode de fonctionnement de la collaboration multi-personnes est généralement le suivant :

Tout d'abord, vous pouvez essayer d'utiliser git push origin

pour pousser vos modifications

Si le push échoue, parce que la branche distante est plus récente que votre branche locale, vous devez d'abord utiliser git pull pour essayer de la fusionner

S'il y a un conflit dans la fusion, résolvez le conflit et ; soumettez-le localement ;

Il n'y a pas de conflit ou résolvez-le. Après le conflit, utilisez git push origin

pour pousser avec succès !

Si git pull ne demande aucune information de suivi, cela signifie que la relation de lien entre la branche locale et la branche distante n'a pas été créée. Utilisez la commande git branch --set-upstream-to origin/.

Rebase

git rebase "organise" l'historique des commits forkés en ligne droite, ce qui semble plus intuitif. L'inconvénient est que le commit forké local a été modifié.

Enfin, exécutez git push -u origin master

Le but du rebase est de nous permettre de visualiser plus facilement les changements dans les soumissions historiques, car les soumissions forked nécessitent une comparaison à trois voies.

Gestion des balises

Par exemple, si une application doit être lancée en ligne, elle ajoute généralement une balise (tag) dans la bibliothèque de versions. la version balisée est déterminée. À tout moment dans le futur, récupérer une version balisée signifie supprimer la version historique à ce moment balisé. Par conséquent, une balise est également un instantané du référentiel.

Bien que la balise Git soit un instantané du référentiel, il s'agit en fait d'un pointeur vers un commit.

tag est en fait un nom significatif, facile à retenir, et il est lié à un certain commit. Par exemple, la balise v2.1 fait référence à une version historique appelée v2.1

Pour créer une balise

étapes :

git branch pour afficher la branche actuelle, git checkout commutateur principal vers la branche principale.

balise git , la valeur par défaut est HEAD. Par exemple, la balise par défaut de git tag v1.0

est placée sur le dernier commit. Si vous souhaitez étiqueter un commit précédent, utilisez git log pour trouver l'identifiant du commit historique.

Si un identifiant de validation est du2n2d9, l'exécution de git tag v1.0 du2n2d9 étiquettera cette version comme v1.0.

git tag Voir tous les tags, vous pouvez connaître la version historique du tag

Les tags ne sont pas répertoriés par ordre chronologique, mais par ordre alphabétique.

git show Afficher les informations sur la balise.

git tag -a -m "", crée une balise avec une description. -a spécifie le nom de l'étiquette et -m spécifie le texte de description. Utilisez show pour afficher les instructions.

Balise d'opération

git tag -d v1.0 Supprimer la balise. Parce que les balises créées ne sont stockées que localement et ne seront pas automatiquement poussées vers la télécommande. Par conséquent, les balises mal saisies peuvent être supprimées localement en toute sécurité.

git push origin Pousser une balise vers la télécommande

git push origin --tags Pousser toutes les balises locales qui n'ont pas été poussées vers la télécommande en même temps

Si balise Pousser vers la télécommande. git tag -d v1.0 supprime d'abord la balise locale v1.0. git push origin :refs/tags/v1.0 Supprimer la balise distante v1.0

Personnaliser Git

git config --global color.ui true pour que Git s'affiche La couleur rendra le résultat de la commande plus accrocheur

Ignorer les fichiers spéciaux Créez un fichier .gitignore et remplissez les noms de fichiers qui doivent être ignorés. Git ignorera automatiquement ces fichiers. J'ai également rencontré un tel problème dans mes études. Par exemple, le fichier node_modules peut être ignoré.

Principe d'ignorer le fichier : ignorer les fichiers générés automatiquement par le système d'exploitation, tels que les vignettes, etc. ; ignorer les fichiers intermédiaires, les fichiers exécutables, etc. générés par la compilation. fichier, alors il n'est pas nécessaire de placer les fichiers générés automatiquement dans le référentiel, tels que les fichiers .class générés par la compilation Java ; ignorez vos propres fichiers de configuration contenant des informations sensibles, telles que les fichiers de configuration qui stockent des mots de passe.

Forcer la soumission des fichiers ignorés. git add -f

git check-ignore -v Vérifiez pourquoi Git ignore le fichier.

Attribuez un alias à la commande Git. C'est un peu gênant. Lorsque vous souhaitez entrer dans git rebase à l'avenir, vous lui donnez un "surnom" et vous l'appelez git nb. À l'avenir, vous pourrez utiliser git nb au lieu de git rebase.

Résumé des commandes Git couramment utilisées

git config --global user.name "votre nom" lie tous vos référentiels Git à votre nom

git config --global user.email "Votre e-mail" Laissez tous vos référentiels Git lier votre adresse e-mail

git init initialise votre référentiel

git add . workspace à la zone de stockage temporaire

git add .// Soumettre les fichiers de l'espace de travail à la zone de stockage temporaire

git commit -m "xxx" Soumettre tous les fichiers de la zone de stockage temporaire dans la zone de stockage temporaire, et la zone de stockage temporaire est vide

git remote add origin https://github.com/name/name_cangku.git Connectez l'entrepôt local avec la télécommande Warehouse

git push -u origin master Soumettre le maître de branche principal dans la zone d'entrepôt à l'entrepôt distant

git push -u origin 🎜>

git status Voir l'état de l'entrepôt actuel

git diff Voir le contenu spécifique des modifications de fichiers

git log affiche l'historique des commits du plus récent au plus éloigné

git clone + Warehouse Adresse pour télécharger le fichier cloné

git reset --hard + numéro de version pour retracer la version, le numéro de version suit le maître lors de la validation

git reflog affiche l'historique des commandes

git checkout -- annule la commande et remplace les fichiers de l'espace de travail par les fichiers du référentiel. J'ai l'impression que ctrl + z dans le monde Git

git rm supprime les fichiers du référentiel

git branch Afficher toutes les branches actuelles

git branch branch

git checkout Passer à la branche

git merge Fusionner la branche

git branch -d git branch -D + Supprimer et supprimer de force les branches non fusionnées

git log --graph Afficher le graphique de fusion de branches

git merge --no-ff Désactivez le mode d'avance rapide lors de la fusion de branches, car ce mode perdra les informations de l'historique des branches

git stash Lorsque d'autres tâches sont insérées, "stockez" le site de travail actuel, et continuez à travailler après la récupération plus tard

git stash list Vérifiez où est allé le travail que vous venez de "stocker"

git stash applique les restaurations mais ne supprime pas le contenu du stash

git stash drop supprime le contenu du cache

git stash pop restaure et supprime le contenu du cache en même temps

git distant Afficher les informations de la bibliothèque distante et de l'origine sera affichée. l'entrepôt distant est origin

git remote -v affiche des informations plus détaillées

git pull récupère la dernière soumission de l'entrepôt distant Ensuite, fusionnez localement, ce qui est l'opposé de git push

git rebase "organise" l'historique des commits forkés en une ligne droite, ce qui semble plus intuitif

git tag Afficher toutes les balises pour connaître l'historique Balise de version

git tag , la valeur par défaut est HEAD. Par exemple, git tag v1.0

git tag Marquez le numéro de version. Le numéro de version est la chaîne de lettres et de chiffres à côté lors de la validation.

git show

git tag -a -m "" Crée une balise avec une description. -a spécifie le nom de la balise, -m spécifie le texte de description

git tag -d supprime la balise

git push origin 🎜>

git push origin --tags Pousser toutes les balises locales qui n'ont pas été poussées vers la télécommande en même temps

git push origin :refs/tags/ Supprimer les balises distantes

git config --global color.ui true permet à Git d'afficher les couleurs, ce qui rendra le résultat de la commande plus accrocheur

git add -f

git check-ignore -v Vérifiez pourquoi Git ignore le fichier

gitbranch other

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jianshu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!