Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions book/02-git-basics/sections/getting-a-repository.asc
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[[r_getting_a_repo]]
=== Создание Git-репозитория
=== Создание репозитория Git

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

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

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

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

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

для Linux:
Expand All @@ -26,7 +26,7 @@ $ cd /Users/user/my_project
для Windows:
[source,console]
----
$ cd C:/Users/user/my_project
$ cd C:\Users\user\my_project
----

а затем выполните команду:
Expand All @@ -36,12 +36,12 @@ $ cd C:/Users/user/my_project
$ git init
----

Эта команда создаёт в текущем каталоге новый подкаталог с именем `.git`, содержащий все необходимые файлы репозитория -- структуру Git репозитория.
На этом этапе ваш проект ещё не находится под версионным контролем.
Эта команда создаёт в текущем каталоге новый подкаталог с именем `.git`, содержащий все необходимые файлы репозитория -- структуру Git-репозитория.
На этом этапе ваш проект ещё не находится в системе управления версиями.
Подробное описание файлов, содержащихся в только что созданном вами каталоге `.git`, приведено в главе <<ch10-git-internals#ch10-git-internals>>(((команды git, init)))

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

[source,console]
----
Expand All @@ -50,20 +50,20 @@ $ git add LICENSE
$ git commit -m 'Initial project version'
----

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

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

Для получения копии существующего Git-репозитория, например, проекта, в который вы хотите внести свой вклад, необходимо использовать команду `git clone`.
Для получения копии существующего Git-репозитория, например проекта, в который вы хотите внести свой вклад, необходимо использовать команду `git clone`.
Если вы знакомы с другими системами контроля версий, такими как Subversion, то заметите, что команда называется «clone», а не «checkout».
Это важное различие -- вместо того, чтобы просто получить рабочую копию, Git получает копию практически всех данных, которые есть на сервере.
При выполнении `git clone` с сервера забирается (pulled) каждая версия каждого файла из истории проекта.
Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов, для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования (вы можете потерять часть серверных хуков (server-side hooks) и т. п., но все данные, помещённые под версионный контроль, будут сохранены, подробнее об этом смотрите в разделе <<ch04-git-on-the-server#r_git_on_the_server>> главы 4).
При выполнении `git clone` с сервера забирается (_pulled_) каждая версия каждого файла из истории проекта.
Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования. (Вы можете потерять часть серверных хуков (_server-side hooks_) и т. п., но все данные, помещённые в систему контроля версий, будут сохранены; подробнее об этом смотрите в разделе <<ch04-git-on-the-server#r_git_on_the_server>> главы 4.)

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

[source,console]
----
Expand All @@ -72,7 +72,7 @@ $ git clone https://github.com/libgit2/libgit2

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

[source,console]
----
Expand All @@ -82,5 +82,5 @@ $ git clone https://github.com/libgit2/libgit2 mylibgit
Эта команда делает всё то же самое, что и предыдущая, только результирующий каталог будет назван `mylibgit`.

В Git реализовано несколько транспортных протоколов, которые вы можете использовать.
В предыдущем примере использовался протокол `https://`, вы также можете встретить `git://` или `user@server:path/to/repo.git`, использующий протокол передачи SSH.
В разделе <<ch04-git-on-the-server#r_git_on_the_server>> главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git репозиторию, а также рассмотрим их достоинства и недостатки.
В предыдущем примере использовался протокол `https://`. Также можно встретить `git://` или `user@server:path/to/repo.git`. Они используют протокол передачи SSH.
В разделе <<ch04-git-on-the-server#r_git_on_the_server>> главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git-репозиторию, а также рассмотрим их достоинства и недостатки.