J'ai créé le référentiel de quelqu'un sur GitHub et souhaite mettre à jour ma version avec les validations et les mises à jour effectuées dans le référentiel d'origine. Celles-ci ont été faites après avoir fourré ma copie.
Comment puis-je intégrer les modifications apportées à l'Origin et les intégrer à mon référentiel?
Vous devez ajouter le référentiel d'origine (celui que vous avez créé) en tant que télécommande.
Depuis le page de manuel de GitHub fork :
Une fois le clone terminé, votre référant aura une télécommande nommée "
Origin
" qui pointe vers votre fork sur GitHub.
Ne laissez pas le nom vous confondre, cela ne pointe pas vers le dépôt initial que vous avez créé. Pour vous aider à garder une trace de ce dépôt, nous allons ajouter une autre télécommande nommée "en amont":
$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream
# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master
# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master
Vous avez également un ne gemme Ruby qui peut faciliter ces opérations GitHub .
Voir aussi " Git fork est git clone? ".
En plus de la réponse de VonC, vous pouvez le modifier à votre guise.
Après avoir récupéré de la branche distante, vous devez toujours fusionner les commits. Je remplacerais
$ git fetch upstream
avec
$ git pull upstream master
puisque git pull est essentiellement git fetch + git merge.
Cette vidéo montre comment mettre à jour un fork directement depuis GitHub
Pas:
Pull Requests
.New Pull Request
. Par défaut, GitHub comparera l’original à votre fork, et il ne devrait y avoir rien à comparer si vous n’avez apporté aucune modification.switching the base
. Maintenant, GitHub comparera votre fork avec l'original, et vous devriez voir toutes les dernières modifications.Create a pull request
pour cette comparaison et attribuez un nom prévisible à votre demande d'extraction (par exemple, Mettre à jour à partir de l'original).Create pull request
.Merge pull request
et enfin Confirm
fusionner. Si votre fourche n’a subi aucune modification, vous pourrez la fusionner automatiquement.Utilisation:
git remote add upstream ORIGINAL_REPOSITORY_URL
Cela définira votre amont sur le référentiel que vous avez créé. Alors fais ceci:
git fetch upstream
Cela récupérera toutes les branches, y compris master, du référentiel d'origine.
Fusionner ces données dans votre branche principale locale:
git merge upstream/master
Transférez les modifications dans votre référentiel forké, c’est-à-dire dans Origin:
git Push Origin master
Voila! Vous avez terminé la synchronisation du référentiel d'origine.
Si vous utilisez l'application de bureau GitHub, un bouton de synchronisation est situé dans le coin supérieur droit. Cliquez dessus puis Update from <original repo>
en haut à gauche.
S'il n'y a pas de modifications à synchroniser, cela sera inactif.
Voici quelques captures d'écran pour vous faciliter la tâche.