Synchroniser 2 dépôts (--bare):¶
ssh://bruno@clicclac.synology.me:42666/volume1/Repositories/wp_yuzu-child.git
bruno@maboiteverte.fr:~/git/wp_yuzu-child.git
$ git clone --mirror ssh://bruno@clicclac.synology.me:42666/volume1/Repositories/wp_yuzu-child.git
$ cd wp_yuzu-child.git
total 16
-rw-r--r-- 1 bruno staff 23 May 8 09:13 HEAD
-rw-r--r-- 1 bruno staff 253 May 8 09:13 config
-rw-r--r-- 1 bruno staff 73 May 8 09:13 description
drwxr-xr-x 14 bruno staff 448 May 8 09:13 hooks
drwxr-xr-x 3 bruno staff 96 May 8 09:13 info
drwxr-xr-x 4 bruno staff 128 May 8 09:13 objects
-rw-r--r-- 1 bruno staff 105 May 8 09:13 packed-refs
drwxr-xr-x 4 bruno staff 128 May 8 09:13 refs
$ nano config
[core]
repositoryformatversion = 0
filemode = true
bare = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = ssh://bruno@clicclac.synology.me:42666/volume1/Repositories/wp_yuzu-child.git
fetch = +refs/*:refs/*
mirror = true
On ajoute le second dépôt distant:
$ git remote add --mirror=fetch secondary ssh://bruno@maboiteverte.fr:~/git/wp_yuzu-child.git
$ nano config
[core]
repositoryformatversion = 0
filemode = true
bare = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = ssh://bruno@clicclac.synology.me:42666/volume1/Repositories/wp_yuzu-child.git
fetch = +refs/*:refs/*
mirror = true
[remote "secondary"]
url = bruno@maboiteverte.fr:~/git/wp_yuzu-child.git
fetch = +refs/*:refs/*
On récupère les commits et refs du 1er dépôt (origin):
$ git fetch origin
$ l
total 20
-rw-r--r-- 1 bruno staff 142 May 8 09:25 FETCH_HEAD <-
-rw-r--r-- 1 bruno staff 23 May 8 09:13 HEAD
-rw-r--r-- 1 bruno staff 357 May 8 09:18 config
-rw-r--r-- 1 bruno staff 73 May 8 09:13 description
drwxr-xr-x 14 bruno staff 448 May 8 09:13 hooks
drwxr-xr-x 3 bruno staff 96 May 8 09:13 info
drwxr-xr-x 4 bruno staff 128 May 8 09:13 objects
-rw-r--r-- 1 bruno staff 105 May 8 09:13 packed-refs
drwxr-xr-x 4 bruno staff 128 May 8 09:13 refs
$ nano FETCH_HEAD
e3bd4d1ce81a2a0c6f87f713ec7a84ae4327c87a not-for-merge branch 'master' of ssh://clicclac.synology.me:42666/volume1/Repositories/wp_yuzu-child
On met à jour le second dépôt (avec local refs)
$ git push secondary --all
Enumerating objects: 42, done.
Counting objects: 100% (42/42), done.
Delta compression using up to 8 threads
Compressing objects: 100% (24/24), done.
Writing objects: 100% (42/42), 529.85 KiB | 88.31 MiB/s, done.
Total 42 (delta 16), reused 42 (delta 16), pack-reused 0
remote: % Total % Received % Xferd Average Speed Time Time Time Current
remote: Dload Upload Total Spent Left Speed
remote: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
To maboiteverte.fr:~/git/wp_yuzu-child.git
* [new branch] master -> master
On vérifie sur le second dépôt:
bruno@localhost:~/git/wp_yuzu-child.git$ l
total 40
drwxr-xr-x 7 bruno psacln 4096 May 8 09:39 .
drwxr-xr-x 5 bruno psacln 4096 May 8 08:47 ..
drwxr-xr-x 2 bruno psacln 4096 May 8 08:47 branches
-rw-r--r-- 1 bruno psacln 66 May 8 08:47 config
-rw-r--r-- 1 bruno psacln 73 May 8 08:47 description
-rw-r--r-- 1 bruno psacln 23 May 8 09:39 HEAD <-
drwxr-xr-x 2 bruno psacln 4096 May 8 08:47 hooks
drwxr-xr-x 2 bruno psacln 4096 May 8 08:47 info
drwxr-xr-x 43 bruno psacln 4096 May 8 09:39 objects <-
drwxr-xr-x 4 bruno psacln 4096 May 8 08:47 refs
Les 2 dépôts ont maintenant les mêmes fichiers et historiques.
A partir de la, pour maintenir les 2 dépôts synchronisés:
- un nouveau commit est crée sur le 1er dépôt:
$ git fetch origin
$ git push secondary --all
- un nouveau commit est crée sur le 2nd dépôt:
$ git fetch secondary
$ git push origin
- les 2 dépôts sont modifiés:
# mkdir ../workdir
# git fetch origin
# git --work-tree=../workdir/ checkout branch_name file_name1
# git fetch secondary
# git --work-tree=../workdir/ checkout branch_name file_name2
# git push secondary
# git push origin
Dernière mise à jour:
May 31, 2020