Supposons qu'il existe un référentiel someone/foobar
sur GitHub, que j'ai créé à me/foobar
.
Comment puis-je extraire les nouveaux commits du référentiel parent directement vers mon fork, sans avoir à ajouter une télécommande séparéeet me rappeler de tirer régulièrement à partir de là?
Le but est de:
git pull
à récupérer depuis le référentiel parentgit Push
pour tout envoyer à ma fourchettegit remote set-url Origin [email protected]:someone/foobar
git remote set-url Origin --Push [email protected]:me/foobar
Il y a cependant une mise en garde:
C'est parfait si vous êtes le seul à apporter des modifications à votre fourche.
Cependant, s'il est partagé avec d'autres personnes, vous devrez peut-être sortir de votre fourche, auquel cas une télécommande séparée est la seule solution.
Modifier:
En fait, vous pouvezgit pull [email protected]:me/foobar
, ce qui supprime l'avertissement.
Vous avez le choix entre ce qui est le plus facile à retenir.
Ouvrez le référentiel Git forké me/foobar .
Cliquez sur Comparer:
Vous recevrez la notification:
Il n'y a rien à comparer.
quelqu'un: maître est à jour avec tous les commits de moi: maître . Essayez changez de base pour votre comparaison.
Cliquez sur changer de base sur cette page:
Ensuite, vous pouvez voir tous les commits faits à quelqu'un/foobar / après le jour où vous l'avez envoyé.
Cliquez sur Créer une demande d'extraction:
Donnez un titre à la demande d'extraction et éventuellement une description, puis cliquez sur Créer une demande d'extraction.
Sur la page suivante, faites défiler vers le bas de la page et cliquez sur Fusionner demande d'extraction et Confirmer la fusion.
Votre référentiel Git me/foobar sera mis à jour.
J'ai utilisé une méthode assez simple en utilisant l'interface Web de GitHub pour le faire:
me/foobar
)Je ne sais pas comment cela peut être fait sans ajouter une autre télécommande. Cependant, j'ajoute toujours le repo que j'ai créé en tant que télécommande upstream
afin que je puisse simplement faire:
git branch -a|grep remotes/upstream| while IFS="/" read p r b; do echo Syncing $r/$b to Origin/$b; git Push Origin $r/$b:refs/heads/$b; done
Cela synchronisera toutes les branches incl. en créer de nouveaux (supprimez le refs/heads/
pour ne mettre à jour que les branches existantes). Si l'une de vos branches a divergé, une erreur se produira.