
Entrées requises :
- Lisez, suivez et comprenez mon article sur Git . Cela aidera à s'assurer que tout est configuré et prêt à fonctionner.
- Installez IntelliJ IDEA.
- Allouez une heure de temps personnel pour atteindre une maîtrise complète.
Cloner le projet localement
Il y a deux options ici:- Si vous avez déjà un compte GitHub et que vous souhaitez pousser quelque chose plus tard, il est préférable de bifurquer le projet et de cloner votre propre copie.
- Cloner mon référentiel et tout faire localement sans pouvoir tout pousser sur le serveur. Après tout, c'est mon référentiel :)
-
Copiez l'adresse du projet :
-
Ouvrez IntelliJ IDEA et sélectionnez "Get from Version Control":
-
Copiez et collez l'adresse du projet :
-
Vous serez invité à créer un projet IntelliJ IDEA. Acceptez l'offre :
-
Puisqu'il n'y a pas de système de construction et que cela dépasse le cadre de cet article, nous sélectionnons Créer un projet à partir de sources existantes :
-
Ensuite, vous verrez ce magnifique écran :
Maintenant que nous avons compris le clonage, vous pouvez jeter un coup d'œil.
Premier aperçu d'IntelliJ IDEA en tant qu'interface utilisateur Git
Examinez de plus près le projet cloné : vous pouvez déjà obtenir de nombreuses informations sur le système de contrôle de version. Tout d'abord, nous avons le volet Version Control dans le coin inférieur gauche. Ici, vous pouvez trouver toutes les modifications locales et obtenir une liste des commits (analogue à "git log"). Passons à une discussion sur Log . Il existe une certaine visualisation qui nous aide à comprendre exactement comment le développement s'est déroulé. Par exemple, vous pouvez voir qu'une nouvelle branche a été créée avec un en-tête ajouté au commit txt , qui a ensuite été fusionné dans la branche principale. Si vous cliquez sur un commit, vous pouvez voir dans le coin droit toutes les informations sur le commit : toutes ses modifications et métadonnées.



Travailler avec un référentiel
Raccourcis clavier utiles
Pour les travaux futurs, vous devez vous souvenir de quelques raccourcis clavier très utiles :- CTRL+T — Récupère les dernières modifications depuis le référentiel distant (git pull).
- CTRL+K — Créer un commit / voir toutes les modifications en cours. Cela inclut à la fois les fichiers non suivis et modifiés (voir mon article sur git, qui explique cela) (git commit).
- CTRL+SHIFT+K — Il s'agit de la commande permettant de pousser les modifications vers le référentiel distant. Tous les commits créés localement et pas encore dans le dépôt distant seront poussés (git push).
- ALT+CTRL+Z — Restauration des modifications d'un fichier spécifique à l'état du dernier commit créé dans le référentiel local. Si vous sélectionnez l'intégralité du projet dans le coin supérieur gauche, vous pouvez annuler les modifications apportées à tous les fichiers.

Que voulons-nous?
Pour faire le travail, nous devons maîtriser un scénario de base qui est utilisé partout. L'objectif est d'implémenter une nouvelle fonctionnalité dans une branche distincte, puis de la transférer vers un référentiel distant (vous devez également créer une demande d'extraction vers la branche principale, mais cela dépasse le cadre de cet article). Que faut-il pour faire cela ?-
Obtenez toutes les modifications actuelles dans la branche principale (par exemple, "master").
-
À partir de cette branche principale, créez une branche distincte pour votre travail.
-
Implémenter la nouvelle fonctionnalité.
-
Allez à la branche principale et vérifiez s'il y a eu de nouveaux changements pendant que nous travaillions. Si non, alors tout va bien. Mais s'il y a eu des modifications, nous procédons comme suit : accédez à la branche de travail et rebasez les modifications de la branche principale sur la nôtre. Si tout se passe bien, tant mieux. Mais il est tout à fait possible qu'il y ait des conflits. En l'occurrence, ils peuvent simplement être résolus à l'avance, sans perdre de temps dans le référentiel distant.
Vous vous demandez pourquoi vous devriez faire cela ? C'est une bonne manière et empêche les conflits de se produire après avoir poussé votre branche vers le référentiel local (il y a, bien sûr, une possibilité que des conflits se produisent encore, mais cela devient beaucoup plus petit ).
- Poussez vos modifications vers le référentiel distant.
Obtenir les modifications du serveur distant ?
J'ai ajouté une description au README avec un nouveau commit et je souhaite obtenir ces modifications. Si des modifications ont été apportées à la fois dans le dépôt local et dans le dépôt distant, alors nous sommes invités à choisir entre une fusion et un rebase. Nous choisissons de fusionner. Entrez CTRL + T :

Créer une nouvelle branche basée sur master
Tout est simple ici.-
Allez dans le coin inférieur droit et cliquez sur Git: master . Sélectionnez + Nouvelle branche .
Laissez la case Checkout branch cochée et saisissez le nom de la nouvelle succursale. Pour moi, ce sera readme-improver .

Git: master deviendra alors Git: readme-improver .
Simulons le travail en parallèle
Pour que des conflits apparaissent, quelqu'un doit les créer :D J'éditerai le README avec un nouveau commit via le navigateur, simulant ainsi un travail parallèle. C'est comme si quelqu'un apportait des modifications au même fichier pendant que je travaillais dessus. Le résultat sera un conflit. Je supprimerai le mot "fully" de la ligne 10.Implémenter nos fonctionnalités
Notre tâche consiste à modifier le README et à ajouter une description au nouvel article. Autrement dit, le travail dans Git passe par IntelliJ IDEA. Ajoutez ceci :


Vérifier si la branche principale a changé
Nous avons terminé notre tâche. Ça marche. Nous avons écrit des tests. Tout va bien. Mais avant de pousser sur le serveur, nous devons encore vérifier s'il y a eu des changements dans la branche principale entre-temps. Comment cela a-t-il pu arriver ? Assez facilement : quelqu'un reçoit une tâche après vous, et que quelqu'un la termine plus rapidement que vous ne terminez votre tâche. Nous devons donc nous rendre dans la branche master. Pour ce faire, nous devons faire ce qui est affiché dans le coin inférieur droit de la capture d'écran ci-dessous :



- acceptez le vôtre - n'acceptez que les modifications du fichier readme-improver.
- accepter les leurs — n'accepter que les modifications du maître.
- fusionner - choisissez vous-même ce que vous voulez garder et ce que vous voulez jeter.

- Ce sont les changements de readme-improver.
- Le résultat fusionné. Pour l'instant, c'est ce qui existait avant les changements.
- Les changements de la branche master.

Pousser les modifications vers le serveur distant
L'étape suivante consiste à envoyer les modifications au serveur distant et à créer une demande d'extraction. Pour ce faire, appuyez simplement sur CTRL+SHIFT+K . Ensuite, nous obtenons :

Partie bonus
Au début, je ne voulais pas ajouter la création d'une pull request à cet article, mais ce n'est pas tout à fait complet sans cela. Alors, allons dans un dépôt GitHub (un qui est le vôtre, bien sûr :)) et on voit que GitHub sait déjà ce qu'on veut :

GO TO FULL VERSION