Перейти к содержимому

Git где находится локальный репозиторий

  • автор:

2.1 Основы Git — Создание Git-репозитория

Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.

Создание Git-репозитория

Обычно вы получаете репозиторий Git одним из двух способов:

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

В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.

Создание репозитория в существующем каталоге

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

$ cd /home/user/my_project
$ cd /Users/user/my_project
$ cd C:/Users/user/my_project

а затем выполните команду:

$ git init

Эта команда создаёт в текущем каталоге новый подкаталог с именем .git , содержащий все необходимые файлы репозитория — структуру Git репозитория. На этом этапе ваш проект ещё не находится под версионным контролем. Подробное описание файлов, содержащихся в только что созданном вами каталоге .git , приведено в главе Git изнутри

Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит добавить их в индекс и осуществить первый коммит изменений. Добиться этого вы сможете запустив команду git add несколько раз, указав индексируемые файлы, а затем выполнив git commit :

$ git add *.c $ git add LICENSE $ git commit -m 'Initial project version'

Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.

Клонирование существующего репозитория

Для получения копии существующего Git-репозитория, например, проекта, в который вы хотите внести свой вклад, необходимо использовать команду git clone . Если вы знакомы с другими системами контроля версий, такими как Subversion, то заметите, что команда называется «clone», а не «checkout». Это важное различие — вместо того, чтобы просто получить рабочую копию, Git получает копию практически всех данных, которые есть на сервере. При выполнении git clone с сервера забирается (pulled) каждая версия каждого файла из истории проекта. Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов, для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования (вы можете потерять часть серверных хуков (server-side hooks) и т. п., но все данные, помещённые под версионный контроль, будут сохранены, подробнее об этом смотрите в разделе Установка Git на сервер главы 4).

Клонирование репозитория осуществляется командой git clone . Например, если вы хотите клонировать библиотеку libgit2 , вы можете сделать это следующим образом:

$ git clone https://github.com/libgit2/libgit2

Эта команда создаёт каталог libgit2 , инициализирует в нём подкаталог .git , скачивает все данные для этого репозитория и извлекает рабочую копию последней версии. Если вы перейдёте в только что созданный каталог libgit2 , то увидите в нём файлы проекта, готовые для работы или использования. Для того, чтобы клонировать репозиторий в каталог с именем, отличающимся от libgit2 , необходимо указать желаемое имя, как параметр командной строки:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Эта команда делает всё то же самое, что и предыдущая, только результирующий каталог будет назван mylibgit .

В Git реализовано несколько транспортных протоколов, которые вы можете использовать. В предыдущем примере использовался протокол https:// , вы также можете встретить git:// или user@server:path/to/repo.git , использующий протокол передачи SSH. В разделе Установка Git на сервер главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git репозиторию, а также рассмотрим их достоинства и недостатки.

Настройка локального репозитория Git для документации

В этой статье показано, как настроить репозиторий Git на локальном компьютере для создания документации по продуктам Майкрософт. Добавлять новые статьи, вносить значительные правки в существующие и изменять графическое оформление можно при помощи локально клонированного репозитория.

Чтобы начать участие, выполните следующие однократные действия по настройке:

  • Определите соответствующий репозиторий.
  • Репозиторий, скопированный в учетную запись GitHub.
  • Выберите локальную папку для клонированных файлов.
  • Клонируйте репозиторий на локальный компьютер.
  • Настройте удаленное значение вышестоящий.

Если вы вносите только незначительные изменения, вам не нужно выполнить действия, описанные в этой статье. См. статью «Изменить» в браузере , чтобы узнать, как быстро изменять без установки средств.

Обзор

Чтобы внести свой вклад в документацию в Microsoft Learn, вы можете создавать и изменять файлы Markdown локально, клонируя соответствующий репозиторий документации. Корпорация Майкрософт требует, чтобы вы вилировали соответствующий репозиторий в собственную учетную запись GitHub, чтобы у вас были разрешения на чтение и запись для хранения предлагаемых изменений. Затем вы используете запросы на вытягивание (PR) для объединения изменений в центральный общий репозиторий только для чтения.

Screenshot showing the GitHub workflow for information flowing between the upstream, origin, and local clone.

Репозиторий Майкрософт называется репозиторием вышестоящий. Используя действие вилки в пользовательском интерфейсе GitHub, пользователь перекваливали репозиторий Майкрософт в собственную учетную запись GitHub. Этот вилки называется источником. Используя клон git, пользователь клонирует источник на локальный компьютер. Наконец, пользователь использует удаленное добавление git вышестоящий для подключения локального клона обратно к репозиторию Microsoft вышестоящий.

Определение репозитория

Документация, размещенная в Microsoft Learn , находится в нескольких репозиториях на GitHub.

  1. Если вы не уверены, в каком репозитории находится статья, посетите статью с помощью веб-браузера. Щелкните ссылку «Изменить » (значок карандаша) в правом верхнем углу статьи. Screenshot of the pencil edit icon on a Microsoft documentation article.
  2. Это действие принимает вас в исходный файл на GitHub. Имя репозитория отображается в левом верхнем углу страницы. Screenshot of where the repo name is found in a GitHub repo.Ниже приведены некоторые популярные репозитории, доступные для публичный вклад:
    • Документация по Azure https://github.com/MicrosoftDocs/azure-docs
    • Документация по SQL Server https://github.com/MicrosoftDocs/sql-docs
    • Документация по Visual Studio https://github.com/MicrosoftDocs/visualstudio-docs
    • Документация по .NET https://github.com/dotnet/docs
    • Документация по пакету SDK для Azure .NET https://github.com/azure/azure-docs-sdk-dotnet
    • Документация по Configuration Manager https://github.com/MicrosoftDocs/SCCMdocs

Создание вилки репозитория

После определения правильного репозитория следующий шаг — вилку репозитория в собственную учетную запись GitHub.

Создание копии репозитория в учетной записи GitHub. Требуется личный вилок, так как все репозитории документации Майкрософт предоставляют доступ только для чтения, но вилка предоставляет доступ на запись для внесения изменений. Вилка позволяет открывать PR из вилки в репозиторий Майкрософт.

  1. На странице GitHub основного репозитория нажмите кнопку «Вилку » в правом верхнем углу. Screenshot of the fork icon in the GitHub user interface.
  2. На экране «Создание нового вилки» убедитесь, что для владельца задано имя пользователя, и копировать только основную ветвь проверка. При необходимости измените имя репозитория и поля описания . Screenshot of the Create a new fork screen.

Клонирование репозитория

Клонирование означает создание копии репозитория на локальном компьютере.

  1. НЕ клонируйте локальные репозитории в папки, синхронизированные с OneDrive. При выборе папки, в которую вы клонируете репозиторий, избегайте синхронизации папок с OneDrive (например, папка «Документы «). OneDrive может вызвать непреднамеренные конфликт слияния при слиянии изменений обратно в основную ветвь. Вместо этого рекомендуется создать короткий путь к файлу на C:\ диске (например, C:\GitHub).
  2. Git в Windows. Включение длинных имен путей. По умолчанию Git для Windows отключает поддержку длинных путей к файлам, что предотвращает клонирование любого файла с целевым путем с длиной больше 255 символов. Включите длинные пути к файлам, чтобы избежать этой проблемы, выполнив следующую команду от имени администратора:
    git config —global core.longpaths true
  1. Создайте папку GitHub на локальном компьютере. Например, C:\GitHub. (Не клонируйте приложение синхронизации OneDrive папку.)
  2. В браузере перейдите к GitHub.com и войдите в систему.
  3. В GitHub справа в раскрывающемся списке профиля выберите репозитории. Откроется страница репозиториев со списком вилированных репозиториев.
  4. Выберите репозиторий, который требуется клонировать. Откроется страница репозитория вашего вилки. Убедитесь, что вы находитесь на странице репозитория для вилки, а не на странице рабочего репозитория. Вы можете убедиться, что репозиторий, на который вы работаете, является вилкой, проверка URL-адрес: он должен отображать имя пользователя GitHub, а не организацию Майкрософт (например, https://github.com/nancydavolio/azure-docs и НЕ https://github.com/MicrosoftDocs/azure-docs ). Кроме того, вы увидите свое имя в левом верхнем углу, и вы увидите заметку, которая отображается вилкой, за которой следует имя основного репозитория. Screenshot showing a forked repo in GitHub.
  5. Выберите вкладку «Код» <> в левом верхнем углу страницы.
  6. В раскрывающемся списке «Код» в раскрывающемся списке «Код» скопируйте URL-адрес в параметре HTTPS. Screenshot showing how to copy the clone HTTPS URL in GitHub.

Вы скопировали URL-адрес клона через Пользовательский интерфейс GitHub. Остальные шаги должны выполняться в терминале VS Code.

Клонирование из Visual Studio Code

  1. Откройте Visual Studio Code.
  2. В верхнем меню навигации выберите «Вид » и выберите «Терминал«. Представление терминала отображается в нижней части экрана Visual Studio Code.
  3. В представлении терминала выполните команду, чтобы изменить каталог (cd) на GitHub папку, созданную для репозиториев на диске на шаге 1 в разделе клонирования репозитория. Пример:
 cd C:\GitHub 
git clone
git clone https://github.com/nancydavolio/azure-docs.git 

Настройка удаленных служб

После клонирования репозитория следует установить удаленное подключение только для чтения, называемое вышестоящим, к основному репозиторию. Удаленные — это псевдонимы , ссылающиеся на удаленные репозитории. Источник ссылается на вилку и вышестоящий ссылается на рабочий репозиторий. Git автоматически создал удаленный origin при выполнении clone команды. С помощью URL-адреса вышестоящего подключения вы сможете обеспечить синхронизацию вашего локального репозитория с последними правками, внесенными другими участниками.

Выполните следующие команды в терминале Git Bash или VS Code.

    Измените каталог ( cd ) в папку репозитория, созданную командой clone . Например:

cd repo-name 
git remote add upstream
git remote add upstream https://github.com/MicrosoftDocs/azure-docs.git 
git remote -v 

Пример выходных данных:

origin https://github.com/nancydavolio/azure-docs.git (fetch) origin https://github.com/nancydavolio/azure-docs.git (push) upstream https://github.com/MicrosoftDocs/azure-docs.git (fetch) upstream https://github.com/MicrosoftDocs/azure-docs.git (push) 
git remote remove upstream 

Следующие шаги

  • Чтобы узнать больше о добавлении и обновлении содержимого, перейдите к основным изменениям.

Добавление репозитория с локального компьютера в GitHub Desktop

Вы можете добавить любой репозиторий Git в GitHub Desktop, даже если это не репозиторий GitHub.

Platform navigation

Совет. Вы можете добавить репозиторий Git с локального компьютера в GitHub Desktop, перетащив папку в окно GitHub Desktop. Если перетащить в GitHub Desktop несколько папок Git одновременно, каждая из них будет добавлена в виде отдельного репозитория Git.

Снимок экрана: строка меню на Компьютере Mac. Раскрывающееся меню

  1. В строке меню выберите «Файл«, а затем нажмите кнопку «Добавить локальный репозиторий«.

Снимок экрана: окно

В окне «Добавить локальный репозиторий» нажмите кнопку » Выбрать. «, а затем используйте окно Finder для перехода к локальному репозиторию, который требуется добавить.

Снимок экрана: строка меню в Windows. Раскрывающееся меню

  1. В строке меню выберите «Файл«, а затем нажмите кнопку «Добавить локальный репозиторий«.

Снимок экрана: окно

В окне «Добавить локальный репозиторий» нажмите кнопку «Выбрать. «, а затем используйте Windows Обозреватель для перехода к локальному репозиторию, который требуется добавить.

Мастер, удалённый, локальный репозитории, репозиторий и форк, в чём отличия?

Термины (T) и то как я их понимаю (Me): (T) Репозиторий Git — каталог файловой системы, в котором находятся: файлы конфигурации, файлы журналов операций, выполняемых над репозиторием, индекс расположения файлов и хранилище, содержащее сами контролируемые файлы. (Me) Репозиторий — папка, в которой находятся файлы проекта, index.html и т.д., но в отличие от просто папки на пк, эта папка находится на удалённом сервере (Гитхаб) и только поэтому мы не можем назвать ее просто папкой, а придумали для этого новое слово, которого конечно очень не хватало нашей памяти 🙂 (T) Локальный репозиторий — репозиторий, расположенный на локальном компьютере разработчика в каталоге. Именно в нём происходит разработка и фиксация изменений, которые отправляются в удалённый репозиторий. (Me) локальный репозиторий — репозиторий на пк, где происходит разработка и фиксируются изменения, которые отправляются на удалённый репозиторий, то есть по сути это и есть та же самая папка с файлами проекта на нашем пк, которую никаким репозиторием и называть то не надо было, но мы назвали, ок. (T) Мастер (Master) — главная или основная ветка репозитория. мастер-репозиторий, главный репозиторий, от него начинаются форки. (Me) Мастер-репозиторий — папка с файлами проекта находящаяся на удалённом сервере (Гитхаб) к которой есть доступ у лица обладающего правами администратора на эту папку, и через которое (лицо), идёт всё взаимодействите с файлами данной папки (пулреквесты, и т.д.), называющаяся словом «мастер» только потому что с файлами из нее нельзя взаимодействовать напрямую, (с целью сохранения достигнутого в проекте прогресса) но можно по согласованию с лицом, которое имеет над этой папкой — власть. (но если открыт публичный доступ то можно сделать форк). (T) Форк-репозиторий — копия мастер-репозитория находящаяся на сервере Гитхаб. (Me) Форк-репозиторий — скопированная в свой профиль на гитхабе версия мастер-репозитория, с которой можно спокойно работать, не боясь нанести ущерба тому, что уже сделано. (T) Удалённый репозиторий — репозиторий, находящийся на удалённом сервере. Это общий репозиторий, в который приходят все изменения и из которого забираются все обновления. (Me) удалённый репозиторий — подождите, и как описанный выше термин отличить от мастер-репозитория? или как «удалённый репозиторий» отличить от простого термина «репозиторий» (ведь мы придумали новое слово «репозиторий» как раз потому, чтобы подчеркнуть удалённость нашей папки и нахождение её на удаленном сервере, а не нахождение её на пк). получается если расшифровать «удалённый репозиторий» получится «удалённая, удалённая от пк папка»? То есть какая-то супер удалённая папка? Помогите разобраться.

Отслеживать
задан 25 июл 2022 в 12:56
61 3 3 бронзовых знака

1) git-репозиторий может находиться где угодно не привязан ни к каким серверам — именно это отличает децентрализованный git от централизованных аналогов вроде svn; 2) Не любая папка с файлами может считаться git-репозиторием; 3) Слово «мастер» это всего лишь соглашение между людьми и оно не имеет никакого технического смысла (и кстати от этого слова в последнее время массово отказываются)

25 июл 2022 в 13:11

4) Слово «форк» это тоже всего лишь соглашение, которое в общем случае тоже не имеет никакого отношения к гитхабу, а с точки зрения гитхаба он не любую копию считает форком; 5) В принципе никто не запрещает разместить «удалённый» репозиторий на том же самом компьютере, просто в другой папке (и делать pull/push в эту папку), так что я не вижу смысла рассуждать о масштабах «удалённости»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *