Mise à jour de 2021
Je suis novice en matière de git, je voulais donc faire le plus possible dans l'interface graphique d'eclipse (v2020-12 ; EGit v5.11). Détails ci-dessous.
---> La méthode d'importation dans les autres réponses a été conçue uniquement pour les projets Subversion, Mercurial ou TFS. Il n'est pas supporté par GitHub pour les projets git. comme je l'ai appris de première main. Ça pourrait marcher, mais pourquoi le risquer ?
Dépôts et connexion GitHub
eclipse/org.aspectj
est le Dépôt public original et le upstream
télécommande pour aller chercher
cb4/org.aspectj
est le fourchette et le origin
télécommande pour pousser
cb4/remPrivAJ
est le dépôt privé distant et le private
télécommande pour pousser
I:\local
est le repo local
Pour l'authentification github, j'ai utilisé ssh avec une clé ed25519 ( les étapes de cette réponse SO ) donc mes URI de connexion ressemblent à ceci : ssh://git@github.com/<user>/<repo>
.
Notation : ->
est un clic de souris ou une sélection ; right->
est un clic droit.
ÉTAPES
- Sur github, fourchette le dépôt public d'origine sur votre compte github
- Sur github, créer le repo privé distant vide
- Dans la perspective Git d'eclipse, clonez le fork vers un nouveau repo local et configurez-le
- 3.1
-> Clone a Git Repository and add clone to this view -> Clone URI -> Next
- 3.1.1 Entrez l'URI, la connexion et les informations d'authentification comme il convient.
-> Next
- 3.1.2. Sélectionnez les branches désirées (j'ai sélectionné seulement master)
-> Next
- 3.1.3. Entrez le répertoire de destination pour le repo local
- 3.1.4. Importez des projets maintenant ou faites-le plus tard, puis
-> Finish
pour alimenter le dépôt local
- 3.2. Configurez le repo public d'origine comme un nouveau distant nommé
upstream
pour faire descendre les mises à jour
- 3.2.1.
right-> Remotes -> Create Remote ->
et entrez le nom upstream
- 3.2.2.
-> Configure fetch -> Create -> Change ->
entrer l'URI du repo original -> Finish
- 3.2.3.
-> Save and Fetch ->
toutes les branches sont téléchargées -> Close
- 3.2.4. NOTE : Je ne voulais que la branche master, donc j'ai fait ceci au lieu de Étape 3.2.3
- 3.2.5.
-> Advanced
sous Specifications to fetch
supprimer la seule entrée qui s'y trouve
- 3.2.6. Sous
Add create/update specification -> Source ref: dropdown
et sélectionnez master [branch] -> +Add Spec -> Force Update
- 3.2.7.
-> Save specifications in upstream configuration -> Finish -> Save and Fetch ->
seule la branche master est téléchargée -> Close
-
Dupliquer le repo public distant vers votre dépôt privé distant et configurez-le. C'est la seule étape qui ne peut pas être faite dans eclipse, donc j'ai installé Git pour Windows et utilisé GitCMD.
Comme ça :
git clone --bare git://github.com/eclipse/org.aspectj.git tmpRepo
<if prompted, enter ssh passphrase>
cd tmpRepo
git push --mirror ssh://git@github.com:cb4/private.git
<if prompted, enter ssh passphrase>
cd ..
rmdir tmpRepo /s /q
- Configurer le repo privé distant comme un nouveau distant nommé
private
pour avoir poussé
- 5.1.
right-> Remotes -> Create Remote ->
et entrez le nom private
- 5.2.
-> Configure push -> Create -> Change ->
entrer l'URI du dépôt privé distant -> Finish
- 5.3.
-> Advanced -> Add All Branches Spec -> Force Update -> Save specifications in origin configuration -> Finish
- 5.4.
-> Save and Push
la branche master est poussée -> Close
À ce stade, vous avez bifurqué d'un dépôt public vers votre dépôt privé. Pour voir comment pousser les changements privés vers votre fork et ensuite ouvrir une demande de pull contre le repo public original, voir ma réponse ici . La configuration résultante ressemble à ceci :