Transférer les modifications git sur un lecteur réseau partagé

90

Comment une équipe de quatre personnes peut-elle utiliser Git (en particulier Github pour Windows ) pour appliquer des modifications locales à un lecteur réseau partagé?

Pour le moment (sans Git), nous devons copier les fichiers du lecteur réseau sur notre machine locale, éditer les fichiers, puis les télécharger à nouveau sur le lecteur réseau partagé. C'est un processus laborieux qui peut conduire à de nombreuses erreurs, mais il semble que Git pourrait nous aider.

Pouvons-nous simplement installer Git sur le lecteur partagé et partir de là?

user1549303
la source

Réponses:

123

Je ne sais pas si vous avez trouvé quelque chose qui fonctionne pour vous ou non, mais j'ai un écrit sur la façon de faire cette chose même sur un lecteur réseau Windows:

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

À partir d'un changement d'invite cmd sur votre lecteur mappé.

$ cd g:

Puis cd dans votre prochain dépôt git.

scripts $ cd

Créez ensuite un référentiel git vide. Si vous n'utilisez pas l'option --bare, vous aurez des problèmes, alors ne l'oubliez pas.

$ git init --bare

Maintenant, si vous n'avez pas encore de référentiel git local, vous pouvez cloner votre nouveau référentiel où vous le souhaitez en revenant sur votre lecteur local.

$ c:

$ cd travail / scripts

$ git clone file: // g: \ scripts

Lorsque vous clonez, vous obtenez automatiquement une télécommande appelée «origine» et vous pouvez pousser vers le serveur pour la conserver en toute sécurité chaque fois que vous apportez des modifications localement.

$ git push origin maître

Si vous avez déjà un référentiel git et que vous souhaitez simplement pousser vers le lecteur partagé, vous pouvez le faire depuis votre répertoire git local.

$ git remote ajouter le fichier d'origine: // g: \ scripts

$ git push origin maître

Tony Eichelberger
la source
1
Merci - J'ai fait exactement cela pour un projet personnel sur mon réseau domestique.
Martin Snyder
J'ai suivi ces étapes mais j'obtiens les erreurs suivantes lorsque j'exécute l'erreur de maître d'origine git push: impossible de générer sh: aucun fichier ou répertoire de ce type n'est fatal: impossible de
fourcher
Je vous remercie. Il a
fallu
Pour tous ceux qui n'ont pas leur lecteur partagé mappé, il y a pushd (et popd) pour créer un lecteur temporaire virtuel vers lequel naviguer ( voir lien )
LoJo
Quels problèmes aurez-vous si vous n'utilisez pas --bare? J'ai déjà un référentiel non nu sur un lecteur réseau et j'aimerais l'utiliser comme télécommande.
Fractaly
24

Notre équipe fait actuellement exactement cela. Chaque développeur dispose des éléments suivants:

  1. Git installé sur leur machine locale
  2. Accès à leur propre Drive partagé personnel ( L:)
  3. Accès à un lecteur de groupe partagé ( V:)

Nous avons le référentiel "distant" (configuré avec init -bare) sur le V:disque, et chacun a un clone sur son L:disque personnel . Toutes les modifications sont apportées au L:lecteur et poussées vers le V:lecteur, qui sont ensuite extraites plus tard par les autres développeurs vers leurs référentiels personnels respectifs sur leurs L:lecteurs. Cela fonctionne sans aucun problème et réduit le besoin d'un serveur Git.

Eykanal
la source
D'accord! Super! Dois-je d'abord créer un dépôt local, puis configurer un distant de ce dépôt sur le lecteur partagé?
user1549303
1
@ user1549303 - Voilà comment nous procédons. Vous pouvez créer le référentiel local (notre L:référentiel de lecteurs) en utilisant git init, puis créer le référentiel distant (notre v:lecteur) en utilisant git clone --bare(ou a git init --bare, puis une poussée depuis le L:).
eykanal
@eykanal - Mon équipe utilise actuellement une ancienne et horrible bibliothèque de contrôle de source et nous cherchons à passer à git. Une chose que notre bibliothèque actuelle me permet de faire est de voir qui a extrait un fichier mais qui a oublié d'enregistrer les modifications. Avec git, tous les dépôts sont locaux, alors comment savoir si quelqu'un a oublié de pousser vers "v:"?
Kevin Buchan
3
@KevinBuchan - Je vous suggère de poster votre commentaire sous forme de nouvelle question.
eykanal
1
Comment Git réagit-il lorsque deux développeurs essaient de pousser vers le même référentiel partagé (disons V :) en même temps? Avez-vous rencontré des problèmes avec les opérations push simultanées?
Jordi
2

Vous pouvez ajouter une autre télécommande pointant vers votre lecteur réseau (git remote)

Ensuite, vous pouvez pousser pull comme vous le faites avec github

bluesman
la source