GitLab

Contexte

Vous avez des dépôts sur GitLab pour votre utilisation personnelle ou professionnelle. Pour toucher plus de développeurs, vous déployez ces mêmes dépôts sur GitHub. Comment synchroniser ces deux dépôts afin que GitLab reçoive les patchs du dépôt GitHub ?
Voyons, par l'exemple, la procédure que nous utilisons, en interne, pour gérer le dépôt du module Python MSS.


Initialisation

Le dépôt est crée dans GitLab, vierge ou non (c'est-à-dire que du contenu a pu être récupéré depuis SVN, GitHub, Bitbucket, GitLab.com, Gitorious.org ou encore Google Code). Ensuite, en console :

$ git clone https://gitlab.localhost/Tiger-222/python-mss.git
$ cd python-mss

# On ajoute le dépôt distant
$ git remote add upstream https://github.com/BoboTiG/python-mss

Synchronisation

On récupère tous les fichiers, branches, tags, commits, etc. depuis le dépôt distant :

$ git fetch upstream

remote: Counting objects: 74, done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 74 (delta 43), reused 0 (delta 0), pack-reused 0
Dépaquetage des objets: 100% (74/74), fait.
Depuis https://github.com/BoboTiG/python-mss
 * [nouvelle branche] develop    -> upstream/develop
 * [nouvelle branche] master     -> upstream/master


Il y a donc 2 branches qu'il va falloir synchroniser.

La branche master étant celle par défaut, l'opération est simple :
$ git pull upstream master


Depuis https://github.com/BoboTiG/python-mss
 * branch            master     -> FETCH_HEAD
Mise à jour e938c32..a4d4050
Fast-forward
(...)



On pousse les mises à jour :
$ git push


Total 0 (delta 0), reused 0 (delta 0)
To https://gitlab.localhost/Tiger-222/python-mss.git
   e938c32..a4d4050  master -> master



Pour la branche develop, il faut d'abord la créer, ensuite la synchroniser :
$ git checkout -b develop
$ git pull upstream develop


Depuis https://github.com/BoboTiG/python-mss
 * branch            develop    -> FETCH_HEAD
Mise à jour a4d4050..838174d
Fast-forward
(...)



On pousse les mises à jour :
$ git push --set-upstream origin develop


Décompte des objets: 74, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (74/74), fait.
Écriture des objets: 100% (74/74), 101.16 KiB | 0 bytes/s, fait.
Total 74 (delta 47), reused 0 (delta 0)
To https://gitlab.localhost:8080/Tiger-222/python-mss.git
   a4d4050..838174d  develop -> develop
La branche develop est paramétrée pour suivre la branche distante develop depuis origin.


Et voilà !

Mémo pour synchroniser la branche untel :
$ git checkout -b untel
$ git pull upstream untel
$ git push --set-upstream origin untel





Mises à jour


Lorsque vous souhaitez mettre à jour la branche untel :
$ git checkout untel
$ git pull upstream untel
$ git push





Source : gitready.com » easily fetching upstream changes .