Maison  >  Article  >  interface Web  >  Connaissez-vous vraiment Git ?

Connaissez-vous vraiment Git ?

DDD
DDDoriginal
2024-09-25 06:29:31247parcourir

Do you really know Git?

Les images de ce blog proviennent de "Pro Git" de Scott Chacon, Ben Straub

Dans ce blog, vous découvrirez toutes sortes de faits intéressants sur certaines des fonctionnalités quotidiennes de Git que vous utilisez en programmation !

Il est facile pour les développeurs d'utiliser aveuglément des outils et de ne pas savoir comment ils fonctionnent sous le capot. Bien que ces abstractions soient pour le mieux, savoir comment les choses fonctionnent peut parfois faire la différence entre un programmeur chevronné et amateur.

Plongeons-nous dans quelques faits intéressants !


1 - Statut court

Si vous utilisez Git depuis un certain temps, vous devriez connaître le statut de git. Cependant, saviez-vous qu'il existe une option pour obtenir une sortie d'état plus lisible et minimale ?

En utilisant le drapeau d'état court, -s, vous obtenez un format plus compact.

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

Vous remarquerez qu'il y a 2 colonnes dans la section gauche de la sortie. La colonne de gauche représente l'état de la zone de transit, tandis que la colonne de droite représente l'état de l'arbre de travail. L'ordre chronologique des actions est également représenté de gauche à droite.

Interprétons le résultat ci-dessus :

  • "M" - modifié mais pas mis en scène
  • "MM" - mis en scène puis modifié à nouveau. Ainsi, une étape supplémentaire est requise pour le prochain commit.
  • "A " - un nouveau fichier a été créé et mis en scène
  • "M" - mise en scène
  • "??" - un nouveau fichier a été créé mais n'a pas été mis en scène (non suivi)

2 - Sauter la zone de transit

Et si vous souhaitez mettre en scène vos fichiers suivis et les valider en une seule commande ?

Vous pouvez le faire en utilisant git commit -a -m "message".

Notez que les fichiers non suivis (fichiers nouvellement créés) ne seront malheureusement pas mis en scène avec cette commande magique.


3 - Afficher votre historique de validation

Utilisez git log pour répertorier les validations effectuées dans votre référentiel dans l'ordre chronologique inverse (les validations les plus récentes apparaissent en premier).

Il existe différentes options qui vous permettent de personnaliser la sortie. Passons en revue quelques-uns utiles :

  • -{number} limite le nombre d'entrées de journal affichées (par exemple, git log -2 affiche les deux dernières entrées)
  • --stat affiche des statistiques abrégées comme le nombre de fichiers ou le nombre d'insertions/suppressions pour chaque commit
  • --pretty=oneline imprime chaque commit sur une seule ligne
  • --graph ajoute un graphique ASCII montrant l'historique de vos branches et fusions

4 - Annuler des choses à l'aide de Git Restore

Lorsque vous souhaitez supprimer un fichier, utilisez git reset HEAD . Lorsque vous souhaitez annuler la modification d'un fichier modifié, utilisez git checkout -- {file}.

Il existe désormais un moyen plus simple de faire les deux ! La version 2.23.0 de Git a introduit git recovery, qui apporte une capacité 2-en-1 pour annuler et annuler la modification des fichiers.

  • git restaurer {file} - annuler la modification d'un fichier modifié
  • git restaurer --staged {file} - annuler la mise en scène d'un fichier préparé

5 - Git Fetch contre Git Pull

Très probablement, vous avez utilisé git pull au moins une fois en tant que programmeur. De plus, vous avez probablement entendu parler de git fetch mais vous n'avez jamais vraiment eu besoin de l'utiliser. Eh bien, parlons de ce qu'il fait réellement et en quoi il est différent de git pull.

Vous pouvez considérer la récupération comme la première étape de ce qui se passe lors d'un tirage.

Dans un pull, nous téléchargeons toutes les données du référentiel distant et les transférons sur le référentiel local. C'est ce que fait une récupération.

À ce stade, votre référentiel local contient les données mais ne les a pas fusionnées avec le répertoire de travail afin que vous puissiez travailler sur les dernières modifications. La prochaine étape d'un pull est une fusion avec votre branche afin que les dernières modifications soient alors dans votre répertoire de travail.

Ainsi, un pull récupère et fusionne en même temps, tandis qu'un fetch ne fait que la première étape.


6 - Alias ​​Git

Et si je vous disais qu'il existe un moyen de rendre vos commandes git personnalisables ? Grâce au git config, vous pouvez !

Vous pouvez définir des alias pour les commandes fréquemment utilisées comme ceci :

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

Maintenant, au lieu de taper git commit, il vous suffit de taper git ci.

Ceci est particulièrement utile pour les commandes qui contribuent à rendre une certaine tâche plus intuitive.

$ git config --global alias.unstage 'reset HEAD --'
# the double dash serves as an option separator. 
# It tells Git to treat anything after it as a filename

La commande ci-dessus rend équivalentes les commandes suivantes :

  • git unstage fileA
  • git reset HEAD -- fileA

It's also common to add a last command to see your most recent commit:

$ git config --global alias.last 'log -1 HEAD'

That's all for this blog! I hope you learned a few neat tricks for your next project with Git that will improve the quality of your workflow. Thanks for reading!

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!

Déclaration:
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