"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Connaissez-vous vraiment Git ?

Connaissez-vous vraiment Git ?

Publié le 2024-11-07
Parcourir:264

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 sans 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 l'indicateur 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é transféré (non suivi)

2 - Sauter la zone de transit

Que faire si vous souhaitez organiser 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 telles que le nombre de fichiers ou le nombre d'insertions/suppressions pour chaque validation
  • --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 restaurer, 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} - supprimer un fichier intermédiaire

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. L'étape suivante d'un pull est une fusion avec votre branche afin que les dernières modifications se trouvent 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 désinstaller le fichierA
  • git réinitialiser HEAD -- fichierA

Il est également courant d'ajouter une commande last pour voir votre commit le plus récent :

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

C'est tout pour ce blog ! J'espère que vous avez appris quelques astuces intéressantes pour votre prochain projet avec Git qui amélioreront la qualité de votre flux de travail. Merci d'avoir lu !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/jihoonj/do-you-really-know-git-456d?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3