Локальный репозиторий Git и удаленный репозиторий-запутанные понятия

Если я правильно понимаю, Git имеет два вида репозиториев: один называется локальным, другой называется удаленным. Мои вопросы чрезвычайно наивны в отношении двух типов репозиториев.

правильно ли это сказать

  • локальный репозиторий в Git-это тот, на котором мы будем вносить локальные изменения, как правило, этот локальный репозиторий на нашем компьютере.

  • удаленный репозиторий Git - это один из серверов, обычно это машина в 42 км от отеля.

другой вопрос: некоторые учебник показывает мне этот рабочий процесс

  • mkdir myproject
  • cd myproject
  • git init
  • нажмите README
  • git добавить README
  • git commit-a-m"

Я вижу git init создает локальный репозиторий myproject. Чего я не понимаю это ??

надеюсь, я был ясен.

[EDIT] способ, которым я использую Git, может отличаться от других: Я использую частный репозиторий Git для резервного копирования своих кодов. Поэтому я думаю, что мне нужен удаленный репозиторий. В этом случае локальный репозиторий должен быть бессмысленным. Я прав? Спасибо за разъяснение. Это самые наивные вопросы, на которые не могу найти ответов нигде...

4 ответов


Что делает git настолько удивительным, это распределенные система контроля версий. Ваш локальный репозиторий имеет те же функции и функции, что и любой другой репозиторий git. Таким образом, git-РЕПО на сервере-это то же самое, что Git-РЕПО на github (предоставленный github добавляет дополнительные функции, но по своей сути вы имеете дело с Git-РЕПО), что и локальное РЕПО вашего коллеги.

Почему это круто? Потому что нет центрального РЕПО, к которому вы должны иметь доступ выполнять свою работу. Вы можете совершать, ветви и партии на своем собственном РЕПО на локальном компьютере даже без доступа в интернет. Затем, когда у вас снова будет соединение, вы можете перенести свои изменения в любое другое репозиторий git, к которому у вас есть доступ. Поэтому, хотя большинство людей рассматривают конкретное РЕПО как центральное РЕПО, это выбор процесса, а не требование git.

смысл всего этого состоял в том, чтобы заявить (как и другие), что вы передаете свой README в локальное РЕПО. Тогда, когда бы вы ни выбрали, вы можете нажмите изменения из локального РЕПО в любое другое РЕПО. Это довольно изящно!


поскольку я испытываю точно такие же вопросы, как и ваши (приедет из ВСС и TFS мышление) и в течение последних 3 дней начал понимать. Я считаю, что такого рода диаграммы были бы более полезны для понимания всей картины для тех, кто там оказался.

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

Git Flow diagram 1

еще один, от: https://wiki.lsr.ei.tum.de/lib/exe/fetch.php?media=nst/programming/git_flow.jpg&w=500&tok=e87798

Git flow diagram 2


Если я еще не установил удаленный репозиторий, как Git может знать, где зафиксировать мой файл README??

вы совершаете свой локальный репозиторий (который является правильным репозиторием с собственным контролем изменений; это не просто локальная проверка ... так как вы создали его локально, это не даже локальный кассе!).

Если вы хотите отправить изменения в удаленный репозиторий (чтобы поддержать их, сделать их доступными для других членов команды, или опубликовать их в мире), вы должны пуш них.


ваше цитируемое утверждение верно.

вам не нужно иметь удаленный репозиторий на всех.
Вы можете иметь полный опыт с Git, с коммиты, ветки, сливается, перебазирует, и т. д., Только с локальным репозиторием.

цель удаленного репозитория (например, GitHub) - опубликовать ваш код в мире (или некоторым людям) и позволить им читать или писать его.

удаленный репозиторий задействован только тогда, когда вы git push ваш локальный фиксируется на удаленном репозиторий, или когда вы git pull чужие коммиты из него.