Les commandes git courantes sont :
git init
Créez un nouveau dépôt localement et entrez Dans un répertoire de projet, l'exécution de git init initialisera un dépôt et créera un dossier .git sous le dossier actuel
git clone
Get. le dépôt Git distant correspondant à une url et créez une copie locale.
Le format général est git clone [url].
Le dépôt cloné sera suivi de la dernière barre oblique du nom de l'url. et créez un dossier. Si vous souhaitez spécifier un nom spécifique, vous pouvez git clone [url] newname
git status
. Interrogez l'état du dépôt.
git status -s : -s signifie court, la marque de sortie de -s aura deux colonnes, la première colonne est pour la zone de transit et la deuxième colonne est pour le répertoire de travail
git log
afficher l'historique des commits d'une branche.
git log --oneline --number : Chaque journal n'affiche qu'une seule ligne, indiquant le numéro.
git log --oneline --graph : peut représenter graphiquement l'historique de fusion de branche
git log branchname peut afficher un journal de branche spécifique.
git log --oneline branch1 ^branch2, vous pouvez afficher les commits dans la branche 1 mais pas dans la branche 2. ^ signifie exclure cette branche (vous devrez peut-être ajouter des guillemets à ^branch2 sous Windows
git log --decorate affichera les informations sur les balises. git log --author=[author name] peut spécifier l'historique de soumission de l'auteur. git log -- puisque - -before --until --after Filtrer les journaux en fonction de l'heure de validation --no-merges peut exclure les validations de fusion git log --grep Filtrer en fonction du journal des informations de validation : git. log --grep=keywords Par défaut, git log --grep --author est une relation OR, c'est-à-dire qu'elle sera renvoyée si l'une d'entre elles est remplie si vous souhaitez qu'elle soit ET. relation, vous pouvez ajouter l'option --all-match. git log -S : filtrer par diff introduit. Par exemple : git log -SmethodName (notez qu'il n'y a pas de signe égal entre S et les mots suivants séparés). git log -p : affiche le patch introduit à chaque commit. Chaque soumission est un instantané, et Git calculera la différence de chaque soumission sous forme de patch vous est montré. Une autre méthode est git show [SHA]. git log --stat : affiche le diffstat des modifications introduites à chaque commit. C'est également utilisé pour voir les informations relatives des modifications. --stat est plus simple que la sortie de -pgit add
Avant de valider, Git dispose d'une zone de préparation (zone de préparation), dans laquelle vous pouvez placer les fichiers nouvellement ajoutés ou ajouter de nouvelles modifications. Les modifications soumises lors de la validation sont les dernières modifications ajoutées à la zone de préparation, pas celles sur notre disque Change. git add . Ajoutera récursivement tous les fichiers dans le répertoire de travail actuel.git diff
git diff sans paramètres : afficher le différentiel des modifications non planifiées. Cette commande compare la différence entre le fichier actuel dans le répertoire de travail et l'instantané de la zone de préparation, c'est-à-dire les modifications qui n'ont pas été effectuées. enregistré temporairement après modification. Si vous souhaitez voir la différence entre les fichiers qui ont été temporairement enregistrés et l'instantané de la dernière soumission, vous pouvez utiliser : Commande git diff --cached. affiche la différence des modifications par étapes. (Git 1.6.1 et versions ultérieures permettent également l'utilisation de git diff --staged, l'effet est le même). git diff HEAD affiche le diff de toutes les modifications planifiées ou non déclarées. Autrement dit, comparez le répertoire de travail avec le dernier commit Toutes les modifications au cours de la période. Si vous voulez voir ce qui a été modifié depuis une certaine version, vous pouvez utiliser : git diff [balise de version] Comme la commande log, diff peut également être ajouté avec le paramètre --stat pour simplifier la sortie git diff [branchA] [branchB] peut être utilisé pour comparer deux branches.Cela renverra en fait un patch de A à B, ce qui n'est pas le résultat que nous souhaitons Généralement, le résultat que nous voulons est quels sont les changements après la séparation des deux branches, et sont. ils ont déterminé par la commande : git diff [branchA]...[branchB] est donné En fait, c'est : git diff $(git merge-base [branchA] [branchB]) [branchB] Le résultat.
git commit
Soumettez les modifications qui ont été ajoutées
git commit -m "le message de validation"
git commit -a ajoutera d'abord les modifications à tous les fichiers suivis, puis soumettra ( un peu comme la soumission unique de svn, pas besoin de le sauvegarder temporairement au préalable). Pour les fichiers sans trace, vous devez toujours git add.
git commit --amend pour compléter la soumission. le nœud de soumission actuel sera utilisé. Le nœud effectue une nouvelle soumission et l'ancienne soumission sera annulée
git reset
annuler les modifications. et commits.
Le mot-clé HEAD fait ici référence au dernier commit à la fin de la branche actuelle, c'est-à-dire la dernière version sur la branche dans le référentiel
git reset HEAD: unstage. fichiers de l'index et réinitialiser le pointeur vers HEAD
Cette commande est utilisée pour supprimer les fichiers ajoutés accidentellement de l'état intermédiaire. Elle peut être utilisée individuellement sur un certain fichier : git reset HEAD - - filename, this - - can. également être omis.
git reset --soft
déplacer HEAD vers une référence de commit spécifique, l'index et le staging sont intacts.
git reset --hard
annuler la mise en scène des fichiers ET annuler toutes les modifications apportées au répertoire de travail depuis la dernière validation.
Utilisez git reset --hard HEAD pour réinitialiser, c'est-à-dire que toutes les modifications effectuées et les modifications du répertoire de travail après la dernière validation disparaîtront et seront restaurées à l'état du dernier commit.
HEAD ici peut être écrit en tant que SHA-1 de n'importe quel commit.
git reset sans paramètres soft et hard utilise en fait le paramètre par défaut mélangé.
Résumé :
git reset --mixed id modifie le HEAD de git (c'est-à-dire que l'enregistrement de validation a changé), mais le fichier n'a pas changé (c'est-à-dire que le l'arbre de travail n'a pas changé) ). Annulez le contenu du commit et ajoutez.
git reset --soft id En fait, après git reset --mixed id, faites un autre git add. contenu du commit.
git reset --hard id. Modifie le git HEAD et les fichiers
Trier par portée de modification comme suit :
soft (commit) < Mixed ( commit + add) < hard (commit + add + local working)
git revert
Inversez simplement le commit. error Passez simplement le nom du commit (référence) en tant que paramètre à la commande
git revert HEAD : Annuler le dernier commit
git revert créera un nouveau commit inversé, vous pouvez le dire à Git. ne pas le soumettre via le paramètre -n.
git rm
git rm file : Supprimez les fichiers de la zone de préparation, en même temps. temps, le répertoire de travail est également supprimé.
git rm --cached : supprime les fichiers de la zone de préparation, mais les laisse dans le répertoire de travail
git rm --cached est fonctionnellement équivalent. pour git reset HEAD efface la zone de cache mais laisse l'arborescence du répertoire de travail inchangée
git clean
git clean se déplace depuis le répertoire de travail Sauf. fichiers sans trace.
Le paramètre habituel est git clean -df :
-d signifie supprimer le répertoire en même temps, -f signifie forcer, car dans le fichier de configuration git, nettoyer . requireForce=true, si -f n'est pas ajouté, clean refusera de s'exécuter
git mv
git rm - - cached orig. ; mv orig new; git add new
git stash
Poussez les modifications actuelles dans une pile.
git stash will Il poussera toutes les modifications du répertoire et de l'index actuels (mais sans inclure les fichiers non suivis) dans une pile, puis vous laissera avec un état de fonctionnement propre, c'est-à-dire lors de la dernière soumission
git stash. list affichera la liste de cette pile.
git stash apply : supprimez l'élément précédent dans stash (stash@{0}) et appliquez-le au répertoire de travail actuel
Vous pouvez. spécifiez également d'autres projets, tels que git stash apply stash@{1}.
Si vous souhaitez supprimer le projet dans stash lors de son application, vous pouvez utiliser git stash pop
Supprimer des éléments dans la cache :
git stash drop : supprimez le précédent, ou vous pouvez spécifier des paramètres pour supprimer un élément spécifié.
git stash clear : supprimez tous les éléments.
git branch
git branch peut être utilisé pour lister les branches, créer des branches et supprimer des branches
git branch -v can. voir chaque Le dernier commit de la branche.
git branch : Liste toutes les branches locales, la branche actuelle sera marquée d'un astérisque.
git branch (branchname) : Créer une nouvelle branche ( lorsque vous créez une branche de cette façon, la branche est basée sur votre dernier commit
.git branch -d (branchname) : Supprimer une branche.
Supprimer une branche distante :
git push (remote-name):(branch-name) : supprimer une branche distante.
C'est parce que le formulaire de commande complet est :
git push remote-name local-branch:remote-branch
Et la partie branche locale ici est vide, elle signifie que succursale distante
git checkout
git checkout (branchname)
Passer à une branche.
git checkout -b (nom de la branche) : Créer et changer vers une nouvelle branche.
Cette commande est le résultat de la combinaison de git branch newbranch et git checkout newbranch.
Checkout a une autre fonction : remplacer les modifications locales :
git checkout - -
Cette commande remplacera les fichiers de votre répertoire de travail par le dernier contenu dans HEAD. Les modifications et les nouveaux fichiers qui ont été ajoutés à la zone de préparation ne seront pas affectés.
Remarque : git checkout filename supprimera toutes les modifications du fichier qui n'ont pas été préparées et validées. Cette opération est irréversible.git merge
Fusionner une branche dans la branche actuelle. git merge [alias]/[branch]
Fusionner la branche distante dans la branche actuelle.
Si un conflit survient et doit être modifié manuellement, vous pouvez utiliser git mergetool. Le conflit a été résolu.
git tag.
marquez un point de l'historique comme importé.
sera sur un commit Pour créer un signet permanent, vous ajoutez généralement une balise après avoir publié une version commerciale ou expédié quelque chose Par exemple. : git tag v1.0
git tag -a v1.0, -a Les paramètres vous permettront d'ajouter quelques informations, c'est-à-dire de créer une balise annotée.
Lorsque vous exécutez le git tag -a commande, Git ouvrira un éditeur pour que vous puissiez saisir les informations de la balise.
Nous pouvons utiliser commit SHA pour baliser un commit passé :
git tag -a v0.9 XXXX
Cela ne fonctionne pas lors du push Si vous souhaitez inclure des balises, vous pouvez ajouter le paramètre --tags lors du push
Lors de la récupération. , les balises accessibles par la branche HEAD sont automatiquement récupérées, les balises qui ne sont pas accessibles depuis les têtes de branche seront ignorées. Si vous souhaitez vous assurer que toutes les balises sont incluses, vous devez ajouter l'option --tags.
git remote
liste, ajoutez et supprimez des alias de référentiel distant. Parce que vous n'avez pas besoin d'utiliser l'URL complète à chaque fois À ce moment-là, Git crée un alias pour chaque URL de dépôt distant, puis utilise git remote pour gérer cette liste.git remote : répertorie les alias distants.
Si vous clonez un projet, Git le fera automatiquement ajoutez l'URL d'origine et l'alias est appelé : origin. git remote - v : Vous pouvez voir l'url réelle correspondant à chaque alias. git remote add [alias] [url] : Ajoutez un nouveau dépôt distant. git remote rm [alias] : Supprimez un alias distant existant. git remote rename [old-alias] [new-alias] : Renommez. git remote set-url [alias] [url] : Mettre à jour l'url OK Ajoutez les paramètres -push et fetch pour définir différentes adresses d'accès pour le même alias <.>git fetchtéléchargez de nouvelles branches et données à partir d'un référentiel distant.
Vous pouvez utiliser git fetch [alias] pour obtenir un certain dépôt distant, ou vous pouvez utiliser git fetch --all to get all repo
fetch obtiendra tous ceux que vous n'avez pas localement. Données, toutes les branches supprimées peuvent être appelées branches distantes, elles sont les mêmes que les branches locales (vous pouvez voir les différences, les journaux , etc., et peuvent également être fusionnés avec d'autres branches), mais Git ne vous permet pas de les extraire
git pull. récupérer à partir d'un dépôt distant et essayer de fusionner dans la branche actuelle.
pull == fetch + merge FETCH_HEAD
git pull exécutera d'abord git fetch, puis exécutera git merge et fusionnera la tête de la branche récupérée dans la branche actuelle. Cette opération de fusion générera un nouveau commit. Si vous utilisez le paramètre --rebase, il exécutera git rebase pour remplacer la fusion git d'origine.
git rebase
--rebase ne générera pas de soumissions fusionnées. Il enregistrera temporairement toutes les soumissions locales sous forme de correctifs et les placera dans le répertoire ".git/rebase", puis mettra à jour la branche actuelle avec la dernière astuce de branche. patch enregistré dans la branche.
Pendant le processus de rebase, des conflits peuvent survenir. Git arrêtera le rebase et vous permettra de résoudre le conflit, utilisez git add pour mettre à jour le contenu. pour exécuter la validation, il suffit de :
git rebase --continue continuera à créer les correctifs restants
git rebase --abort mettra fin au rebase et la branche actuelle reviendra à l'état précédent de rebase. .
git push
poussez vos nouvelles branches et données vers un référentiel distant.
git push [ alias] [ branch]
fusionnera la branche actuelle avec la branche [branch] sur l'alias. Si la branche existe déjà, elle sera mise à jour. Si elle n'existe pas, la branche sera ajoutée
Si plusieurs personnes envoient du code vers le même référentiel distant, Git exécutera d'abord git log sur la branche que vous essayez de transmettre pour vérifier si la pointe actuelle de la branche sur le serveur peut être vue dans son historique. dans l'historique local Accédez à l'astuce du serveur, indiquant que le code local n'est pas le dernier. Git rejettera votre push et vous permettra de récupérer et de fusionner d'abord, puis de push. Cela garantit que les modifications de chacun seront prises en compte. >git reflog
Git reflog est une commande pour gérer reflog Reflog est un mécanisme utilisé par git pour enregistrer les modifications de référence, telles que l'enregistrement des modifications de branche. ou Modifications des références HEAD.
Lorsque git reflog ne spécifie pas de référence, le reflog de HEAD est répertorié par défaut.
HEAD@{0} représente la valeur actuelle de HEAD, et HEAD@{ 3} représente la valeur de HEAD avant trois changements.
Git enregistrera les changements dans le fichier reflog correspondant à HEAD. Le chemin est .git/logs/HEAD. Les fichiers reflog des branches sont placés dans . git/logs/ Dans le sous-répertoire sous le répertoire refs
Symboles spéciaux :
^ représente la soumission parent. . Lorsqu'une soumission a Lorsqu'il y a plusieurs soumissions parent, vous pouvez indiquer le nombre de soumissions parent en suivant ^ : ^ est équivalent à ^1.
~
Créez un nouveau dépôt localement, entrez un répertoire de projet, exécutez git init, un dépôt sera initialisé et créé dans le dossier actuel git. dossier.
git clone
Récupérez le dépôt Git distant correspondant à une URL et créez une copie locale.
Le le format général est git clone [url].
Le dépôt cloné sera nommé d'après la dernière barre oblique de l'url. Créez un dossier si vous souhaitez spécifier un nom spécifique, vous pouvez git clone [url ] newname. spécifié.
git status
Interrogez l'état du dépôt.
git status -s : -s signifie court , la marque de sortie de -s aura deux colonnes, la première colonne est pour la zone de transit et la deuxième colonne est pour le répertoire de travail
git log
afficher l'historique des commits d'une branche.
git log --oneline --number : chaque journal n'affiche qu'une seule ligne, indiquant le numéro. git log -- oneline --graph : peut représenter graphiquement l'historique de fusion de branches. git log branchname peut afficher le journal d'une branche spécifique git log --oneline branch1 ^branch2, vous pouvez afficher la branche. 1, mais pas dans la branche 2. ^ signifie exclure cette branche (vous devrez peut-être ajouter des guillemets à ^branch2 sous Windows). git log --decorate affichera les informations de la balise. 🎜 > git log --author=[author name] peut spécifier l'historique de soumission de l'auteur. git log --since --before --until --after filtre les journaux en fonction de l'heure de soumission. --no-merges peut exclure les validations de fusion. git log --grep Filtrer les journaux en fonction des informations de validation : git log --grep=keywords Par défaut, git log - - grep --author est une relation OR, c'est-à-dire que si l'une d'entre elles est remplie, elle sera renvoyée. Si vous souhaitez qu'il s'agisse d'une relation AND, vous pouvez ajouter l'option --all-matchgit log -S : filtrer par diff introduit.
Par exemple : git log -SmethodName (notez qu'il n'y a pas de signe égal entre S et les mots suivants).
git log -p : show patch introduit à chaque commit.
Chaque soumission est un instantané Git calculera la différence de chaque soumission et vous l'affichera sous forme de patch
Une autre méthode est git show [SHA. ].
git log --stat : affiche le diffstat des modifications introduites à chaque validation.
Il est également utilisé pour voir des informations relatives sur les modifications --stat est plus simple à afficher que -p. Certains.
git add
在提交之前,Git有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动. commit时提交的改动是上一次加入到staging area中的改动,而不是我们disk上的改动.
git add .
会递归地添加当前工作目录中的所有文件.
git diff
不加参数的git diff:
show diff of unstaged changes.
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容.
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用:
git diff --cached 命令.
show diff of staged changes.
(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的).
git diff HEAD
show diff of all staged or unstated changes.
也即比较woking directory和上次提交之间所有的改动.
如果想看自从某个版本之后都改动了什么,可以用:
git diff [version tag]
跟log命令一样,diff也可以加上--stat参数来简化输出.
git diff [branchA] [branchB]可以用来比较两个分支.
它实际上会返回一个由A到B的patch,不是我们想要的结果.
一般我们想要的结果是两个分支分开以后各自的改动都是什么,是由命令:
git diff [branchA]…[branchB]给出的.
实际上它是:git diff $(git merge-base [branchA] [branchB]) [branchB]的结果.
git commit
Soumettez les modifications qui ont été ajoutées
git commit -m "le message de validation"
git commit -a ajoutera d'abord les modifications à tous les fichiers suivis, puis soumettra ( un peu comme la soumission unique de svn, pas besoin de le sauvegarder temporairement au préalable). Pour les fichiers sans trace, vous devez toujours git add.
git commit --amend pour compléter la soumission. le nœud de soumission actuel sera utilisé. Le nœud effectue une nouvelle soumission et l'ancienne soumission sera annulée
git reset
annuler les modifications. et commits.
Le mot-clé HEAD fait ici référence au dernier commit à la fin de la branche actuelle, c'est-à-dire la dernière version sur la branche dans le référentiel
git reset HEAD: unstage. fichiers de l'index et réinitialiser le pointeur vers HEAD
Cette commande est utilisée pour supprimer les fichiers ajoutés accidentellement de l'état intermédiaire. Elle peut être utilisée individuellement sur un certain fichier : git reset HEAD - - filename, this - - can. également être omis.
git reset --soft
déplacer HEAD vers une référence de commit spécifique, l'index et le staging sont intacts.
git reset --hard
annuler la mise en scène des fichiers ET annuler toutes les modifications apportées au répertoire de travail depuis la dernière validation.
Utilisez git reset --hard HEAD pour réinitialiser, c'est-à-dire que toutes les modifications effectuées et les modifications du répertoire de travail après la dernière validation disparaîtront et seront restaurées à l'état du dernier commit.
HEAD ici peut être écrit en tant que SHA-1 de n'importe quel commit.
git reset sans paramètres soft et hard utilise en fait le paramètre par défaut mélangé.
Résumé :
git reset --mixed id modifie le HEAD de git (c'est-à-dire que l'enregistrement de validation a changé), mais le fichier n'a pas changé (c'est-à-dire que le l'arbre de travail n'a pas changé) ). Annulez le contenu du commit et ajoutez.
git reset --soft id En fait, après git reset --mixed id, faites un autre git add. contenu du commit.
git reset --hard id. Modifie le git HEAD et les fichiers
Trier par portée de modification comme suit :
soft (commit) < Mixed ( commit + add) < hard (commit + add + local working)
git revert
Inversez simplement le commit. error Passez simplement le nom du commit (référence) en tant que paramètre à la commande
git revert HEAD : Annuler le dernier commit
git revert créera un nouveau commit inversé, vous pouvez le dire à Git. ne pas le soumettre via le paramètre -n.
git rm
git rm file : Supprimez les fichiers de la zone de préparation, en même temps. temps, le répertoire de travail est également supprimé.
git rm --cached : supprime les fichiers de la zone de préparation, mais les laisse dans le répertoire de travail
git rm --cached est fonctionnellement équivalent. pour git reset HEAD efface la zone de cache mais laisse l'arborescence du répertoire de travail inchangée
git clean
git clean se déplace depuis le répertoire de travail Sauf. fichiers sans trace.
Le paramètre habituel est git clean -df :
-d signifie supprimer le répertoire en même temps, -f signifie forcer, car dans le fichier de configuration git, nettoyer . requireForce=true, si -f n'est pas ajouté, clean refusera de s'exécuter
git mv
git rm - - cached orig. ; mv orig new; git add new
git stash
Poussez les modifications actuelles dans une pile.
git stash will Il poussera toutes les modifications du répertoire et de l'index actuels (mais sans inclure les fichiers non suivis) dans une pile, puis vous laissera avec un état de fonctionnement propre, c'est-à-dire lors de la dernière soumission
git stash. list affichera la liste de cette pile.
git stash apply : supprimez l'élément précédent dans stash (stash@{0}) et appliquez-le au répertoire de travail actuel
Vous pouvez. spécifiez également d'autres projets, tels que git stash apply stash@{1}.
Si vous souhaitez supprimer le projet dans stash lors de son application, vous pouvez utiliser git stash pop
Supprimer des éléments dans la cache :
git stash drop : supprimez le précédent, ou vous pouvez spécifier des paramètres pour supprimer un élément spécifié.
git stash clear : supprimez tous les éléments.
git branch
git branch peut être utilisé pour lister les branches, créer des branches et supprimer des branches
git branch -v can. voir chaque Le dernier commit de la branche.
git branch : Liste toutes les branches locales, la branche actuelle sera marquée d'un astérisque.
git branch (branchname) : Créer une nouvelle branche ( lorsque vous créez une branche de cette façon, la branche est basée sur votre dernier commit
.git branch -d (branchname) : Supprimer une branche.
Supprimer une branche distante :
git push (remote-name):(branch-name) : supprimer une branche distante.
C'est parce que le formulaire de commande complet est :
git push remote-name local-branch:remote-branch
Et la partie branche locale ici est vide, elle signifie que succursale distante
git checkout
git checkout (branchname)
Passer à une branche.
git checkout -b (nom de la branche) : Créer et changer vers une nouvelle branche.
Cette commande est le résultat de la combinaison de git branch newbranch et git checkout newbranch.
Checkout a une autre fonction : remplacer les modifications locales :
git checkout - -
Cette commande remplacera les fichiers de votre répertoire de travail par le dernier contenu dans HEAD. Les modifications et les nouveaux fichiers qui ont été ajoutés à la zone de préparation ne seront pas affectés.
Remarque : git checkout filename supprimera toutes les modifications du fichier qui n'ont pas été préparées et validées. Cette opération est irréversible.git merge
Fusionner une branche dans la branche actuelle. git merge [alias]/[branch]
Fusionner la branche distante dans la branche actuelle.
Si un conflit survient et doit être modifié manuellement, vous pouvez utiliser git mergetool. Le conflit a été résolu.
git tag.
marquez un point de l'historique comme importé.
sera sur un commit Pour créer un signet permanent, vous ajoutez généralement une balise après avoir publié une version commerciale ou expédié quelque chose Par exemple. : git tag v1.0
git tag -a v1.0, -a Les paramètres vous permettront d'ajouter quelques informations, c'est-à-dire de créer une balise annotée.
Lorsque vous exécutez le git tag -a commande, Git ouvrira un éditeur pour que vous puissiez saisir les informations de la balise.
Nous pouvons utiliser commit SHA pour baliser un commit passé :
git tag -a v0.9 XXXX
Cela ne fonctionne pas lors du push Si vous souhaitez inclure des balises, vous pouvez ajouter le paramètre --tags lors du push
Lors de la récupération. , les balises accessibles par la branche HEAD sont automatiquement récupérées, les balises qui ne sont pas accessibles depuis les têtes de branche seront ignorées. Si vous souhaitez vous assurer que toutes les balises sont incluses, vous devez ajouter l'option --tags.
git remote
liste, ajoutez et supprimez des alias de référentiel distant. Parce que vous n'avez pas besoin d'utiliser l'URL complète à chaque fois À ce moment-là, Git crée un alias pour chaque URL de dépôt distant, puis utilise git remote pour gérer cette liste.git remote : répertorie les alias distants.
Si vous clonez un projet, Git le fera automatiquement ajoutez l'URL d'origine et l'alias est appelé : origin. git remote - v : Vous pouvez voir l'url réelle correspondant à chaque alias. git remote add [alias] [url] : Ajoutez un nouveau dépôt distant. git remote rm [alias] : Supprimez un alias distant existant. git remote rename [old-alias] [new-alias] : Renommez. git remote set-url [alias] [url] : Mettre à jour l'url OK Ajoutez les paramètres -push et fetch pour définir différentes adresses d'accès pour le même alias <.>git fetchtéléchargez de nouvelles branches et données à partir d'un référentiel distant.
Vous pouvez utiliser git fetch [alias] pour obtenir un certain dépôt distant, ou vous pouvez utiliser git fetch --all to get all repo
fetch obtiendra tous ceux que vous n'avez pas localement. Données, toutes les branches supprimées peuvent être appelées branches distantes, elles sont les mêmes que les branches locales (vous pouvez voir les différences, les journaux , etc., et peuvent également être fusionnés avec d'autres branches), mais Git ne vous permet pas de les extraire
git pull. récupérer à partir d'un dépôt distant et essayer de fusionner dans la branche actuelle.
pull == fetch + merge FETCH_HEAD
git pull exécutera d'abord git fetch, puis exécutera git merge et fusionnera la tête de la branche récupérée dans la branche actuelle. Cette opération de fusion générera un nouveau commit. Si vous utilisez le paramètre --rebase, il exécutera git rebase pour remplacer la fusion git d'origine.
git rebase
--rebase不会产生合并的提交,它会将本地的所有提交临时保存为补丁(patch),放在”.git/rebase”目录中,然后将当前分支更新到最新的分支尖端,最后把保存的补丁应用到分支上.
rebase的过程中,也许会出现冲突,Git会停止rebase并让你解决冲突,在解决完冲突之后,用git add去更新这些内容,然后无需执行commit,只需要:
git rebase --continue就会继续打余下的补丁.
git rebase --abort将会终止rebase,当前分支将会回到rebase之前的状态.
git push
push your new branches and data to a remote repository.
git push [alias] [branch]
将会把当前分支merge到alias上的[branch]分支.如果分支已经存在,将会更新,如果不存在,将会添加这个分支.
如果有多个人向同一个remote repo push代码, Git会首先在你试图push的分支上运行git log,检查它的历史中是否能看到server上的branch现在的tip,如果本地历史中不能看到server的tip,说明本地的代码不是最新的,Git会拒绝你的push,让你先fetch,merge,之后再push,这样就保证了所有人的改动都会被考虑进来.
git reflog
git reflog是对reflog进行管理的命令,reflog是git用来记录引用变化的一种机制,比如记录分支的变化或者是HEAD引用的变化.
当git reflog不指定引用的时候,默认列出HEAD的reflog.
HEAD@{0}代表HEAD当前的值,HEAD@{3}代表HEAD在3次变化之前的值.
git会将变化记录到HEAD对应的reflog文件中,其路径为.git/logs/HEAD, 分支的reflog文件都放在.git/logs/refs目录下的子目录中.
特殊符号:
^代表父提交,当一个提交有多个父提交时,可以通过在^后面跟上一个数字,表示第几个父提交: ^相当于^1.
~
更多Git相关技术文章,请访问Git使用教程栏目!
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!