web-dev-qa-db-fra.com

Comment configurer et cloner un repo git distant sous Windows?

Quelqu'un sait comment extraire, cloner ou extraire un projet ou un code d'un référentiel distant git sur un serveur Windows?

L'IP du référentiel est: xxx.xx.xxx.xx, le répertoire du fichier source est c:\repos\project.git

Je suis habitué à l'interface de ligne de commande d'un terminal SUSE Linux. J'ai essayé le même genre de méthode mais il répond toujours que 

fatal: ''/repo/project.git'' does not appear to be a git repository
fatal: Could not read from remote repository..
Please make sure you have the correct access rights

Quelqu'un peut-il me dire comment configurer et cloner?

19
user1213492

Vous devez configurer une sorte de partage à partir de la machine Windows, auquel vous pouvez accéder avec git. Git supporte 3 méthodes d'accès: ssh, système de fichiers distant ou http. Le dernier est probablement le plus compliqué, alors je ne le détaillerai pas. Les deux premiers sont:

  1. Configurez le serveur SSH sur Windows.

    Vous pouvez essayer ce guide: http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/ . Voir aussi cette question pour plus d’options.

    Ensuite, clonez avec git clone [email protected]:/c/git/path/to/repo (un mot de passe vous sera demandé).

    L'avantage de cette méthode est qu'elle est sécurisée (la connexion est cryptée et le serveur ssh est digne de confiance), vous pouvez donc l'utiliser sur Internet. Étant donné que git server est exécuté sur la machine Windows pendant l'accès, vous pouvez configurer des points d'ancrage pour les règles de sécurité avancées, contrôlant ainsi d'autres processus.

  2. Partagez le référentiel à l'aide du partage Windows.

    Que sur l’hôte Linux, vous devez monter le partage avec smbmount. Cela pourrait nécessiter un nom d'utilisateur et un mot de passe, selon la manière dont vous avez défini les autorisations.

    Que vous cloniez par git clone /share/mountpoint/path/to/repo.

    C’est probablement plus facile à configurer, mais ce n’est pas très sécurisé, il ne devrait donc pas être utilisé en dehors du réseau local. De plus, dans ce cas, les hooks sur la machine Windows ne seront pas exécutés (en fait, git essaiera de les exécuter sur la machine Linux, mais ils ne fonctionneront pas ou pourront être contournés de toute façon), vous ne pourrez donc pas appliquer la commande avancée. Sécurité.

Un fichier particulier n’est pas pertinent, vous devez donner le chemin du répertoire contenant le sous-répertoire .git ou du répertoire qui est un référentiel nu (path/to/repo ci-dessus). 

11
Jan Hudec

Tout d'abord, le référentiel git n'est qu'un groupe de fichiers auxquels vous devez accéder. Vous avez écrit sur le clonage et la récupération d'un référentiel, et c'est une partie facile: il vous suffit d'accéder aux fichiers (et de disposer de droits de lecture).

Cela peut se faire par accès direct au système de fichiers, par protocole http (s) ou par connexion ssh. En fait, il existe même un moyen de le faire par serveur FTP.

Ce que tu peux faire:

1) définissez le serveur ssh, puis accédez aux fichiers git via le serveur ssh - en fait, le chemin que vous devez utiliser dépend du serveur ssh que vous utilisez sous windows: source

2) configurez le serveur Web pour accéder au fichier: git clone http://Host/path/to/repo

3) montez le système de fichiers depuis Windows sur votre machine Linux et clonez le référentiel: git clone /mnt/filesystem/path/to/repo

Malgré la méthode que vous choisissez, je suggère de consulter le chapitre approprié de Pro Git Book

0