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.
Recommandations associées :
1.Comment utiliser Git(Images, texte + vidéo)
2.La différence entre Git et Github(Images, texte + vidéo)
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"你的邮箱"
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
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.
Soumettre à GitHub
Quand je n'étais pas familier avec les commandes git dans le passé, lorsque je soumettais des projets à GitHub, j'extrayais les fichiers directement de la page Web et soumettez-les. Un peu honteux.
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 把本地仓库提交到远程仓库。(最后一步)在你的远程仓库上刷新一下就可以看到你提交的文件了。
最后提到的是,在git commit -m ""之前,可以重复git add到暂存区。但是git commit会把你之前存放在暂存区的全部文件一次性全部提交到本地仓库。
版本的回溯与前进
提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,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 个技巧!这篇也推荐看下。
创建与合并分支
在没有其他分支插进来时,只有一个master主分支。每次你git push -u origin master 提交就是增加一条时间轴,master也会跟着移动。
创建一个other的分支,通过other提交,虽然时间轴向前走了,但是主分支master还在原来的位置。
理论分析完,看一下命令怎么写。
创建分支other,切换到other分支。
gitbranch other gitcheckout other
查看当前所有分支
gitbranch * othermaster
当前的分支会有一个*
用other提交
gitadd ./xxx/ git commit -m"xxx"
other分支完成,切换回master
git checkoutmaster
此时,master分支上并没有other的文件,因为分支还没有合并。
合并分支
gitmergeother
合并完成之后,就可以在master分支上查看到文件了。
删除other分支
gitbranch -d other
我由此想到,在以后工作中,应该是一个开放小组共同开发一个项目,组长会创建很多分支,每一个分支可以交给一个人去开发某一个功能,一个小组共同开发而且不会相互干扰。谁的功能完成了,可以由组长合并一下完成了的分支。哦,完美!
解决合并分支问题
Supposons qu'une telle situation se produise, la branche other a été validée, mais lorsque 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.
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
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 masterLe 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.1Pour créer une balise étapes : git branch pour afficher la branche actuelle, git checkout commutateur principal vers la branche principale.balise git
est placée sur le dernier commit. Si vous souhaitez baliser un commit précédent, utilisez git log pour trouver l'identifiant de commit du commit historique.
Si un identifiant de commit est du2n2d9, exécutez git tag v1.0 du2n2d9 pour marquer cette version comme v1.0 étiquette.
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
git tag -a
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
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
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 ./
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 tag Afficher toutes les balises, vous pouvez connaître les balises des versions historiques
git tag
git tag
git push origin --tags Poussez 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/
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
gitbranch other
Pour plus de tutoriels sur l'utilisation de git, veuillez visiter le
tutoriel gitCe 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!