Git - open-source distributed version control system

Git est un système de contrôle de version distribué et open source conçu pour gérer les modifications des fichiers informatiques et permettre ainsi de coordonner le travail entre plusieurs personnes. Il est principalement utilisé pour permettre aux programmeurs de travailler ensemble sur une base de code commune.

Les commandes git sont nombreuses, mais certaines sont indispensables pour pouvoir collaborer avec d'autres développeurs.

Branch

Le 'Branching' permet à chaque développeur de créer une nouvelle version à partir du code d'origine afin d'isoler son travail des autres. Cela aide également Git à fusionner facilement les versions plus tard.

Imaginez que vous travaillez avec vos collègues sur le même fichier. Il y a de fortes chances que quelqu'un écrase, au moins partiellement, le travail d'un autre. Nous pouvons éviter cela en créant des branches afin d'isoler notre travail de celui des autres membres de l'équipe.

Git - branch et merge workflow
En bref, une branche Git est une ligne de développement indépendante.
Remarque: chaque nœud d l'image ci-dessus représente un commit.
  $ git checkout -b [branch name] // Create a new branch and switch to it

Commit

Commit est l'action d'enregistrer nos modifications dans le repository local. Il doit être accompagné d'un message qui décrit ce que cette modification apporte au code:

  $ git commit -m "This fix a bug in the code base" // Commit changes
Nous recommandons d'utiliser une interface graphique pour gérer les commit, cela nous donne un meilleur aperçu de ce que nous voulons enregistrer.

  $ git gui // (git-gui)

Conflicts

Lorsque vous travaillez dans Git, les utilisateurs peuvent combiner les validations de deux branches différentes via une action appelée fusion (merge). Les fichiers sont automatiquement fusionnés à moins que les commits ne mettent à jour la même ligne de code différemment. Dans ce cas il y a un conflit: quelle version de cette ligne faut-il prendre?

Les conflits de fusion causent traditionnellement beaucoup de problèmes aux développeurs. C'est pourquoi nous vous conseillons d'utiliser une interface graphique (telle que meld) pour résoudre les conflits.

Github

GitHub, Inc. est une société mondiale basée aux États-Unis qui propose un hébergement pour le contrôle des versions de développement logiciel à l'aide de Git. Il s'agit de la plus grande plateforme open source au monde. C'est maintenant une filiale de Microsoft, qui a acquis la société en 2018 pour 7,5 milliards de dollars américains....

Github - hosting for git version control

Merge

Fusionner une branche dans une autre est l'action de fusionner ensemble 2 versions différentes du code. Si nous avons terminé de travailler sur une branche nommée «my-feature», nous pouvons la fusionner vers master afin que la branche master soit mise à jour avec votre travail.

  $ git merge [source branch] [target branch] // Merge a branch into a target branch
Git - branch et merge workflow

Pull

Il s'agit de mettre mise à jour de notre version locale du code avec les dernière modifications d'un repo. Il ne faut pas oublier de le faire avant de commencer à travailler sur quelque chose!

  $ git pull // Update local repository to the newest commit

Push

Il s'agit d'envoyer nos commits (modifications) sur le repository commun (sur GitHub ou GitLab, par exemple).

  $ git push // Push changes to remote repository

Repository (repo)

Prenez-le comme un dossier qui contient tous les fichiers source et suit toutes les modifications apportées, en créant un historique au fil du temps. Sur Github, chaque projet est un repo.