Sauvegarde de projet Git entre 2 pc sur le réseau

Bonjour,

J’ai commencé à utiliser GIT le lundi passez. J’ai essayé de cloner 2 répertoires local, j’explique :

Comme nous sommes deux à travailler sur le projet chacun a un PC, on a mis les PC en réseaux l’un nous sert de serveur par ce que c’est lui qui contient le répertoire local du projet et la base MySQL et l’autre PC se connecte au premier à l’aide d’un login et un mot de passe pour pouvoir travailler directement sur le projet en local. Je me suis intéressé à GIT pour la gestion du versoning et la sauvegarde, en un mot il répond mieux à nos besoin.
Ma question est que je voulais savoir s’il y une méthode en GIT me permettant d’utiliser le premier PC en tant que serveur local ou (dépôt local) et le deuxième en tant que serveur distant ou (dépôt distant) après les premieres sauvegardes clonées dépôt local vers dépôt distant. J’ai effectué des recherches mais les exemples que j’ai vu jusqu’ici sont tous avec des serveurs distants, un nom de domaine, etc…

Donc je demande votre aide pour savoir si ce que je veux faire est faisable ou pas ; si oui avec des explications ou des liens SVP.

NB : je connais déjà le Github. L’objectif c’est d’avoir nos sauvegardes sur nos machine seulement en utilisant l’invite des commandes avec GIT.

Merci d’avance.

Le plus simple pour toi est d’utitliser un lecteur réseau ou encore un montage ssh

https://git-scm.com/book/fr/v1/Git-sur-le-serveur-Protocoles

C’est les solutions les plus simples à mettre en place.

Après, tu pourrais également t’installer un gitlab (comme github mais en local). Tu aurais l’avantage d’être en local mais également la force d’une interface

2 « J'aime »

Merci beaucoup @marcSauget
je vous tiendrai informé du reste vraiment merci

bonjour,
est ce que je doit installez GIT sur les 2 PC pour pouvoirs les cloner.
j’ai utilisez tout les protocoles que j’ai étudier sauf le HTTPS mai je parvient pas a cloner le répertoire local distant avec celle du répertoire local de sauvegarde qui n’est rien d’autre que mon PC et le local distant c’est le PC de mon collègue.
a partir du serveur c’est a dire le répertoire local distant cloner et copier le projet dans le répertoire local de sauvegarde.En effet j’ai crée le lecteur réseaux sur les 2 PC et chacun de c’est lecteur réseaux pointe ver les répertoire local ou (répertoire de travaille) des 2 PC.
Merci d’avance.

Si tu utilises un lecteur partagé, une fois celui-ci monté dans ton environnement, son utilisation est transparente.

Donc même si le lecteur est sur une autre machine, seule compte la configuration applicative locale.
Il faut que tu installes git sur les machines qui vont utiliser git, celle qui ne font qu’héberger n’ont pas besoin d’avoir un applicatif d’installé.

Salut,

Je pense que le plus simple et rapide dans ton cas c’est de servir un serveur sur chaque machine lorsque l’on a besoin de partager des changements.

Sur le PC qui contient les changements, dans le répertoire du source, il faut taper :

git daemon --reuseaddr --base-path=. --export-all --verbose

Sur le PC qui récupère les changements, c’est comme avec un dépôt distant. Pour un clone par exemple :

git clone git://<ip-serveur>/.git <nom_projet>

Après, à adapter pour les fetch/pull/push/merge/rebase/… bref, à voir en fonction de la façon dont vous travaillez, mais là, on est dans de la pratique git classique :)

Pour info juste pour le fun, l’équivalent mercurial de la première commande :

hg serve

Niveau process, j’aurais tendance dans votre cas à bosser toujours dans des feature branches et garder le master pour y merger les branches une fois la feature correspondante terminée. Ensuite, il suffit de laisser tourner le serveur sur chacune de vos machines en permanence et récupérer régulièrement chez l’autre les changements. En gros, marcher en pull du master plutôt et banir les push.
Par contre, avoir un serveur central est pratique pour tout un tas de raisons, la première qui me vient à l’esprit est l’utilisation d’une intégration continue.

J’espère que ça peut aider

Cheers

salut,

j’ai tapé la commande à taper dans le répertoire source et voici la capture d’écran en dessous:

en suite j’ai tapé l’autre commande sur le serveur ou le pc qui récupère les changements la capture d’écran en dessous:


mais il y a un problème pourriez-vous m’aider à identifier ce qui ne va pas.
Merci d’avance.

Après avoir créé les lecteurs réseaux je tape juste la commande sur le pc récupérant les modifications : $git clone (le nom du lecteur réseaux) : (le nom du projet).
Pour ce qui sont intéressé et ça fonctionne.
Merci à vous tous pour votre aide, mais @bouquetf si possible j’aimerais vraiment connaitre votre système.

Salut,

Est-ce que les deux machines sont sur le même réseau ? Quelles sont leurs IP sur ce réseau ? Probablement quelque chose du type 192.168.x.y ou 10.x.y.z voire 127.x.y.z.

196.200.55.122 semble être une ip publique et doit être affectée à la passerelle aux yeux d’internet. Qu’est-ce que ipconfig renvoie sur chacune des machines ? Il faudra peut être aussi ouvrir le port 9418 sur le firewall windows.

Sur le git book, ça correspond à la dernière section (git protocol)

1 « J'aime »

Salut,
oui les deux machines sont sur le même réseaux.
196.200.55.122 est l’ip de la première machine, 196.200.55.81 est l’ip de la deuxième machine.
Le port 9418 serve a quoi.
En cor merci.

Bizarre que les deux machines aient des ips publiques. Est-ce qu’elles se voient l’une l’autre (est-ce qu’elles se pinguent ?) ? Quelles sont les tables de routage ? (netstat -rn)

Sinon, le port 9418, c’est le port par défaut de git daemon (partie serveur)

voici la table de routage:

Ok, donc les machines devraient se voir normalement (même sous réseau, pas de routeur entre).

On va commencer par confirmer que le démon git écoute correctement en lançant sur la même machine un clone :

git clone git://127.0.0.1/.git test

Si ça marche, faudrait regarder si les machines arrivent bien à se voir avec un ping (ça devrait être bon)

Si pas de soucis, faudrait voir si le port est ouvert à distance (avec nmap par exemple via nmap <ip> -p 9418)

Le problème vient sûrement de là auquel cas c’est sûrement que le port est bloqué par le firewall windows où il faut l’ouvrir et là, faudra demander à la doc microsoft comment faire parce que je sais pas :)

1 « J'aime »

sa c’est déjà fait git écoute correctement.
le ping c’est bon aussi il y a pas de perte.
pour vérifier si le port est ouvert j’ai pas très bien compris.
merci.

Il faut vérifier que le port est ouvert vers l’extérieur (du moins à minima vers l’ip de la machine cliente).
Pour le vérifier, j’utilise perso nmap pour le faire mais il y a d’autres outil qui existent.
Pour le télécharger, c’est ici : https://nmap.org/
Ensuite, la commande à taper à partir de la machine cliente :
nmap <ip-serveur> -p 9418

j’ai téléchargez et installez Zenmap et j’ai exécuté la commande voici les résultat en image:


je suis pas parvenue a traduire le résultat du scan un peux d’aide je vous prie.
Merci.

Ok, donc ça veut simplement dire que le port est filtré, donc soucis de firewall. Faut donc comme je pressentais dans mes premiers messages regarder du côté du firewall des différents postes de travail pour autoriser les connexions sur le port 9418 et le tour sera joué.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s