Le dépôt local et le dépôt à distance de Git-concepts confus

si je comprends bien, Git a deux sortes de dépôts: l'un appelé local, l'autre appelé remote. Mes questions sont extrêmement naïfs sur les deux types de dépôts.

Est-ce correct de dire

  • Git local repository est celui sur lequel nous allons effectuer des modifications locales, généralement ce dépôt local est sur notre ordinateur.

  • git le dépôt distant est celui du serveur, typiquement une machine située à 42 km.

une autre question: un tutoriel me montre ce workflow

  • mkdir myproject
  • cd myproject
  • git init
  • touch README
  • git add README
  • git commit-a-m "

je vois que git init crée myproject un dépôt local. Ce que je ne comprends pas, c'est la git commit la commande. Si je n'ai pas encore configuré un dépôt distant, comment git peut-il savoir où remets mon README fichier??

j'espère avoir été clair.

[EDIT] la façon dont j'utilise Git pourrait être différente des autres: J'utilise un dépôt Git privé pour sauvegarder mes codes. Donc, je pense que j'ai besoin d'un dépôt distant. Le dépôt local devrait être absurde dans ce cas. Suis-je le droit? Merci pour vos éclaircissements. Ce sont les questions les plus naïves que je ne trouve de réponses nulle part ailleurs...

28
demandé sur zell 2012-10-25 19:33:09

4 réponses

Ce qui rend git tellement génial c'est que c'est un distribué système de contrôle de version. Votre dépôt local a exactement les mêmes caractéristiques et fonctionnalités que tout autre dépôt git. Ainsi, un git repo sur un serveur est le même qu'un git repo sur github (GitHub ajouté des fonctionnalités supplémentaires, mais à son cœur, vous avez affaire à des git repos) ce qui est le même que le repo local de votre collaborateur.

alors pourquoi c'est génial? Parce qu'il n'y a pas de Central repo vous devez avoir accès à faire votre travail. Vous pouvez vous engager, vous connecter et faire la fête sur votre propre repo sur votre machine locale, même sans accès internet. Ensuite, lorsque vous avez à nouveau une connexion, vous pouvez pousser vos modifications à n'importe quel autre git repo auquel vous avez accès. Donc, alors que la plupart des gens traitent un repo particulier comme le repo central, c'est un choix de processus, pas une exigence git.

le but de tout ce qui était de déclarer (comme d'autres l'ont fait) que vous commettez votre README à votre repo local. Ensuite, chaque fois que vous choisissez, vous pouvez poussez les changements de votre repo de tout autre dépôt. C'est assez chouette!

33
répondu agmin 2013-05-08 20:59:20

Comme je suis en train de vivre exactement les mêmes questions comme la vôtre (par VSS et TFS état d'esprit) et au cours des 3 derniers jours ont commencé à comprendre. Je crois que ce genre de diagrammes serait plus utile de comprendre l'ensemble de l'image pour quelqu'un d'autre prisonnière.

à partir de: https://greenido.files.wordpress.com/2013/07/git-local-remote.png?w=696&h=570

Git Flow diagram 1

un autre, de: https://wiki.lsr.ei.tum.de/lib/exe/fetch.php?media=nst/programming/git_flow.jpg&w=500&tok=e87798

Git flow diagram 2

32
répondu Bishoy Hanna 2018-09-19 00:06:59

si je n'ai pas encore configuré un dépôt distant, comment Git peut-il savoir où propager mon fichier README??

vous vous engagez dans votre dépôt local (qui est un dépôt approprié avec son propre contrôle des modifications; ce n'est pas juste un checkout local ... puisque vous l'avez créé localement, ce n'est pas même une caisse locale!).

Si vous souhaitez envoyer les modifications à un dépôt distant (pour les sauvegarder, de les rendre disponibles à d'autres membres de l'équipe, ou publiez - les au monde), vous devez appuyer sur.

12
répondu Quentin 2017-06-15 08:30:03

votre citation est correcte.

Vous n'avez pas besoin d'avoir un dépôt distant.

Vous pouvez avoir toute l'expérience git, avec les commits, les branches, les fusions, les rebases, etc., avec seulement un dépôt local.

le but d'un dépôt à distance (par exemple GitHub) est de publier votre code au monde (ou à certaines personnes) et de leur permettre de le lire ou de l'écrire.

Le dépôt distant n'est impliqué lorsque vous git push votre section locale s'engage à dépôt distant, ou lorsque vous git pull quelqu'un d'autre s'engage.

8
répondu SLaks 2012-10-25 15:36:02