J'ai un projet hébergé sur GitHub et j'aimerais travailler localement dessus. J'ai plusieurs ordinateurs qui ont besoin d'y accéder et je voudrais partager le code entre eux. Cependant, je ne veux pas que tous ces commits se passent sur GitHub, donc une simple approche de "cloner puis simplement pousser/tirer" ne convient pas.Git avec une "télécommande à deux étages"
Essentiellement, je veux ceci:
[GitHub] --> [A Local Network Share] --> [PC1]
--> [PC2]
Alors PC1 et PC2 devrait être en mesure de pousser/tirer à la part du réseau local et donc partager le code entre eux, et chaque fois dans un certain temps que je veux Poussez ces changements dans mon dépôt GitHub.
Je suis un peu perdu ici - est-ce que je crée une branche? Ou est-ce que je git le clone de GitHub à mon partage puis git le clone de ma part à PC1 et PC2, ce qui leur donnerait seulement 1 remote (le partage) et le partage ayant seulement 1 remote (GitHub)? Ce n'est pas pour la sécurité - cela ne me dérange pas que toutes les validations immédiates vont à GitHub, et je ne veux pas non plus empêcher PC2 d'accéder à GitHub. C'est plus que je ne veux pas configurer tout le SSL et parce que je suis quelqu'un qui commet très très souvent (parfois toutes les quelques minutes - j'utilise git commit comme une fonction d'annulation étendue), et je veux toujours le code sur GitHub être compilable. .
Edit 2: Les solutions ici ne fonctionnent pas pour moi encore :(Donc je
git clone --bare [email protected]:foo/bar
sur mon serveur Cela crée un clone sur mes PC, je git clone ce dépôt - que. l'étape fonctionne bien, mes PC ont un dépôt .git et mon serveur est configuré comme une télécommande
Cependant, sur le serveur, rien n'est configuré correctement - il n'y a pas de télécommandes ajoutées et je ne peux pas pousser à partir de là Ajout d'une télécommande est facile en utilisant git add, mais alors comment puis-je pousser? Git status dit qu'il nécessite un travail dir (que nous n'avons pas avec --bare), et g il pousse dit "Tout à jour" même si ce n'est pas (j'ai fait un changement sur PC1 et git poussé sur le serveur)
Création du référentiel sur le serveur sans --bare signifie qu'il a son propre travail dir, donc quand je vais pousser à partir du PC, le serveur ne le ramasse pas (je suppose que j'ai besoin d'un coup de git des PC, mais je veux éviter cela).
Ai-je raté une étape ici?
@Michael: merci pour le montage et l'étape supplémentaire. – VonC