Outils pour utilisateurs

Outils du site


issue77:c_c

Last month, I introduced readers to the newly minted github repository that contained the CLI Cookbook I put together with input from our readers. Since then, I've had some activity from readers – fixing mistakes and adding content. However, in doing so, I realized I never included information on keeping your local fork synchronized with my master branch – which makes handling pull requests very difficult for me, as I have to manually carry over any changes. As such, I will briefly cover fetching upstream changes. Steps 1-3 are required when you first set up your repository on the local system. Step 4 is the command you want to run for pulling in upstream updates. As such, the first time you do this, follow all 4 steps, but after that you can jump right to Step 4.

Le mois dernier, j'ai présenté aux lecteurs le dépôt github nouvellement créé qui contenait le CLI Cookbook que j'ai mis en place avec les commentaires de nos lecteurs. Depuis, j'ai reçu un certain retour des lecteurs : correction des erreurs et ajout de contenu. Mais, en voyant ces contributions, je me suis rendu compte que je n'avais jamais inclus d'informations à propos de la nécessité d'une synchronisation constante de votre branche locale avec ma branche master : ce qui rend très difficile pour moi la prise en compte des demandes, puisque je dois reporter manuellement toutes les modifications. Par conséquent, je vais aborder brièvement comment récupérer les changements en amont.

Les étapes 1 à 3 sont nécessaires lorsque vous configurez votre espace de stockage sur le système local. L'étape 4 est la commande que vous exécuterez pour récupérer les mises à jour en amont. Donc, la première fois que vous faites ceci, suivez les 4 étapes, mais après, vous pouvez aller directement à l'étape 4.

Step 1 Fork the repository (on github simply click the fork button on the repository you want to fork). Step 2 Get a local copy of the fork going. git clone https://github.com/<username>/<repo name>.git Replace <username> with your actual user name, and <repo name> with the name of the repository. Step 3 Configure upstream (remote repository). cd <repo name> git remote add upstream https://github.com/lswest/cli-cookbook.git Replace <repo name> with the name of your local fork. The second command creates a new repository alias in the configuration file for the local fork (located in the .git folder). The URL will need to be changed according to what repository it is you forked.

Étape 1 Dupliquez le référentiel (sur github cliquez simplement sur le bouton de la fourche sur le référentiel que vous voulez dupliquer).

Étape 2 Créez une copie locale de la branche.

git clone https://github.com/<username>/<repo name>.git

Remplacez <username> par votre vrai nom d'utilisateur et <repo name> par le nom du référentiel.

Étape 3

Configurez l'amont (le référentiel distant)

cd <repo name>

git remote add upstream https://github.com/lswest/cli-cookbook.git

Remplacez <repo name> par le nom de votre référentiel local. La deuxième commande crée un nouvel alias du référentiel dans le fichier de configuration pour la branche locale (situé dans le dossier .git). L'URL doit être modifiée selon le référentiel que vous avez dupliqué.

Step 4 Now if you want to pull in any new changes from the original repository, all you need to do is this: git fetch upstream git merge upstream/master This fetches any commits to the original repository, and the second command merges them into your local copy. If you have changes going in your local fork that don't exist in the original, and try to fetch updates, it will result in conflicts. The easiest way to resolve these is to use the following command: git mergetool This should take you through each conflict step by step (it's extremely useful to have some knowledge of diff, as it is the general format used for conflicts).

Étape 4 Maintenant, si vous voulez mettre à jour les changements à partir du référentiel original, tout ce que vous devez faire est :

git fetch upstream

git merge upstream/master

Ceci va récupérer toutes les modifications du référentiel original et la deuxième commande les fusionne avec votre copie locale. Si vous avez des modifications dans votre branche locale qui n'existent pas dans la branche originale et que vous essayez de rafraîchir les mises à jour, cela va faire apparaître des conflits. La manière la plus facile de résoudre ceux-ci est d'utiliser la commande suivante :

git mergetool

Elle vous fera examiner chaque conflit pas à pas (c'est très utile d'avoir une connaissance de « diff », car c'est le format général utilisé pour les conflits).

As you can see – this isn't an extremely complicated process. The key point is how to register the original repository as upstream, after which it progresses as you might imagine. Unfortunately, this won't completely negate the need to resolve conflicts; however, it will cut down on the amount of conflicts I will have to manage on the master branch, and should therefore allow me to handle any pull requests quickly. I hope this has helped explain how to keep your forks up to date – and is the start of plenty more additions to the CLI Cookbook! Thanks to anyone who has contributed so far (either in the Google Doc or the Github repository). If you have any questions, or suggestions, feel free to email me at lswest34+fcm@gmail.com.

Comme vous pouvez le voir, ce n'est pas un processus extrêmement compliqué. Le point clé est comment enregistrer le référentiel original comme amont et, après cela, ça avance comme vous pourriez l'imaginer. Mais, ça n'effacera pas complètement le besoin de résoudre les conflits ; cependant, cela permettra de réduire le nombre de conflits que j'aurai à régler dans la branche maîtresse et devrait ainsi me permettre de gérer les demandes de mise à jour rapidement.

J'espère que ça vous a aidé à comprendre comment garder vos branches à jour ; et que ce sera le début de plein de nouveautés dans le CLI Cookbook ! Merci à tous ceux qui ont contribué jusqu'à présent (soit dans le Google Doc, soit dans le référentiel Github). Si vous avez des questions ou des suggestions, n'hésitez pas à m'envoyer un e-mail à lswest34+fcm@gmail.com

issue77/c_c.txt · Dernière modification : 2014/02/25 16:07 de auntiee