Prérequis : Pour Windows 10, avec Git pour Windows
Remarque : Il est possible de généraliser à plusieurs serveurs"
Dans notre cas, on utilisera la même clef pour les 2 comptes.
- Créer clef SSH via puttygen
- RSA, 2048 bits
- Enregistrer les clefs dans
C:\Users\YassineGANGAT\.ssh
id_rsa
pour la clef privé (avec l'option Conversions -> Export OpenSSH key de puttygen)id_rsa.pub
pour la clef publique
- Dans certains cas, il faut copier le contenu du répertoire
.ssh
dansProgram Files\Git\.ssh\
ouProgram Files (x86)\Git\.ssh\
- Dans certains cas, il faut faire Export OpenSSH (new format)
- Sur son compte, rajouter la clef publique dans https://github.com/settings/keys
- Il est préférable de prendre le copier/coller du la sortie de puttygen
- Sur son compte, rajouter la clef publique dans https://bitbucket.org/account/user/gyassine/ssh-keys/
- Il est préférable de prendre le copier/coller du la sortie de puttygen
- Attention à ne pas l'ajouter dans "Access keys" d'un projet (car sinon ça ne fonctionne pas)
Important : Il est possible de configurer plusieurs repo pour le push, mais pas pour le pull. En général, ça sera pour le premier.
Remarque : Il est possible d'utiliser Sourcetree pour faire la modification en utilisant la méthode n°2. Dans ce cas, il faut ouvrir le repo local, aller dans "Paramètres", faire "Editer le fichier de configuration"
- Dans l'interface de github ou bitbucket, importer le repository existant déjà depuis l'autre.
- Recupérer dans chacun des serveur les URL. Dans notre cas :
[email protected]:sunny-shark/equation.git
[email protected]:gyassine/Equation.git
- Aller dans le repertoire sur l'ordinateur
- Méthode 1 (CLI):
- Effacer l'ancien origin
git remote remove origin
- Rajouter le 1er repo (qui sera "origin", et aussi celui qui sera la source de pull)
git remote add origin [email protected]:sunny-shark/equation.git
- Rajouter le 2nd repo (qui sera la copie)
git remote add github [email protected]:gyassine/Equation.git
- Rajouter un "push URL"
git remote set-url --add --push origin [email protected]:sunny-shark/equation.git
# pas utilegit remote set-url --add --push origin [email protected]:gyassine/Equation.git
- Effacer l'ancien origin
- Méthode 2 (Config ):
- Editer le fichier dans
[Repertoire]/Equation/.git/config
en utilisant un bloc note ou en faisantgit config -e
- Faire les modifications suivantes
- Editer le fichier dans
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[user]
name = Yassine Gangat
email = [email protected]
[remote "origin"]
url = [email protected]:sunny-shark/equation.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = [email protected]:sunny-shark/equation.git
pushurl = [email protected]:gyassine/Equation.git
[remote "github"]
url = [email protected]:gyassine/Equation.git
fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
remote = origin
merge = refs/heads/master
- Vérifier la configuration en faisant :
git remote -v
ougit remote show origin
remote origin
Fetch URL: [email protected]:sunny-shark/equation.git
Push URL: [email protected]:sunny-shark/equation.git
Push URL: [email protected]:gyassine/Equation.git
En faisant un push "normal" (soit à la main, soit dans un IDE), le push se fera sur les deux serveurs automatiquement.
Il suffit de créer les repo initiaux dans chaque serveur et faire :
git init
git add README.md
git commit -m "🎉 Initial commit"
git remote add origin [email protected]:sunny-shark/equation.git
git remote add github [email protected]:gyassine/Equation.git
git remote set-url --add --push origin [email protected]:gyassine/Equation.git
git remote set-url --add --push origin [email protected]:sunny-shark/equation.git
git push -u origin master