Skip to content

Instantly share code, notes, and snippets.

@gyassine
Last active October 19, 2021 07:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gyassine/a61c94aaabff5d2279dfbc697100d2d1 to your computer and use it in GitHub Desktop.
Save gyassine/a61c94aaabff5d2279dfbc697100d2d1 to your computer and use it in GitHub Desktop.
Tutoriel synchronisation de repository Github et Bitbucket

Tutoriel synchronisation de repository Github et Bitbucket

Prérequis : Pour Windows 10, avec Git pour Windows

Remarque : Il est possible de généraliser à plusieurs serveurs"

Ajout de clef ssh (facultatif) 🔐

Dans notre cas, on utilisera la même clef pour les 2 comptes.

Création clef ssh 🔑

  • 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 dans Program Files\Git\.ssh\ ou Program Files (x86)\Git\.ssh\
  • Dans certains cas, il faut faire Export OpenSSH (new format)

Upload de clef ssh dans Github 🔑📥

Upload de clef ssh dans Bitbucket 🔑📥

  • 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)

Cas d'un repository existant 📂

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 :
    • git@bitbucket.org:sunny-shark/equation.git
    • git@github.com: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 git@bitbucket.org:sunny-shark/equation.git
    • Rajouter le 2nd repo (qui sera la copie)
      • git remote add github git@github.com:gyassine/Equation.git
    • Rajouter un "push URL"
      • git remote set-url --add --push origin git@bitbucket.org:sunny-shark/equation.git # pas utile
      • git remote set-url --add --push origin git@github.com:gyassine/Equation.git
  • Méthode 2 (Config ):
    • Editer le fichier dans [Repertoire]/Equation/.git/config en utilisant un bloc note ou en faisant git config -e
    • Faire les modifications suivantes
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[user]
	name = Yassine Gangat
	email = yassine@gangat.com
[remote "origin"]
	url = git@bitbucket.org:sunny-shark/equation.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	pushurl = git@bitbucket.org:sunny-shark/equation.git
	pushurl = git@github.com:gyassine/Equation.git
[remote "github"]
	url = git@github.com: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 ou git remote show origin
remote origin
Fetch URL: git@bitbucket.org:sunny-shark/equation.git
Push  URL: git@bitbucket.org:sunny-shark/equation.git
Push  URL: git@github.com:gyassine/Equation.git

En faisant un push "normal" (soit à la main, soit dans un IDE), le push se fera sur les deux serveurs automatiquement.

Cas d'un nouveau repository ✨

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 git@bitbucket.org:sunny-shark/equation.git
git remote add github git@github.com:gyassine/Equation.git
git remote set-url --add --push origin  git@github.com:gyassine/Equation.git
git remote set-url --add --push origin git@bitbucket.org:sunny-shark/equation.git
git push -u origin master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment