web-dev-qa-db-fra.com

Comment puis-je synchroniser ma fourchette sans ajouter de télécommande?

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 parent
  • git Push pour tout envoyer à ma fourchette
182
1ace
git 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.

21
1ace

Ouvrez le référentiel Git forké me/foobar .

Cliquez sur Comparer:

Here is a sample image of the page

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:

Here is an example on the 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:

Here is a sample page

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.

371

J'ai utilisé une méthode assez simple en utilisant l'interface Web de GitHub pour le faire:

  1. Ouvrez le référentiel Git d'origine (pas le référentiel Git découpé me/foobar)
  2. Accédez au dossier src et ouvrez le fichier que vous souhaitez modifier.
  3. Cliquez sur l'icône du stylo. Il créera automatiquement une étiquette dans votre branche personnelle nommée "patch-1" en fonction de la version actuelle du référentiel maître: Enter image description here
  4. Prendre plaisir!Enter image description here
7
Nadir

Une autre option consiste à utiliser le bouton Update from upstreamRepoName/master dans GitHub pour Mac (et je suppose GitHub pour Windows).

 Enter image description here

1
Steve Moser

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.

0