Ceci est une ancienne révision du document !
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 faisant cela, j'ai réalisé que je n'avais jamais inclus d'informations à propos du maintien de votre branche locale synchronisée 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 aller chercher 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 cela, suivez les 4 étapes, mais après cela, 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, vous voulez dupliquer).
Étape 2 Téléchargez une copie locale de la branche actuelle.
git clone https://github.com/<username>/<repo name>.git
Remplacez <username> avec votre vrai nom d'utilisateur, et <repo name> avec 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).
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.