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
22 changes: 11 additions & 11 deletions book/01-introduction/sections/what-is-git.asc
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ Git переосмысливает практически все аспекты

==== Почти все операции выполняются локально

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

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

Это также означает, что есть лишь небольшое количество действий, которые вы не сможете выполнить, если вы находитесь оффлайн или не имеете доступа к VPN в данный момент.
Если вы в самолёте или в поезде и хотите немного поработать, вы сможете создавать коммиты без каких-либо проблем (в вашу _локальную_ копию, помните?): когда будет возможность подключиться к сети, все изменения можно будет синхронизировать.
Expand All @@ -55,9 +55,9 @@ Git переосмысливает практически все аспекты
Данная функциональность встроена в Git на низком уровне и является неотъемлемой частью его философии.
Вы не потеряете информацию во время её передачи и не получите повреждённый файл без ведома Git.

Механизм, которым пользуется Git при вычислении хеш-сумм, называется SHA-1 хеш.(((SHA-1)))
Это строка длиной в 40 шестнадцатеричных символов (0-9 и a-f), она вычисляется на основе содержимого файла или структуры каталога.
SHA-1 хеш выглядит примерно так:
Механизм, которым пользуется Git при вычислении хеш-сумм, называется хеш SHA-1.(((SHA-1)))
Это строка длиной в 40 шестнадцатеричных символов (0-9 и a-f), которая вычисляется на основе содержимого файла или структуры каталога.
Хеш SHA-1 выглядит примерно так:

[source]
----
Expand All @@ -71,7 +71,7 @@ SHA-1 хеш выглядит примерно так:

Когда вы производите какие-либо действия в Git, практически все из них только _добавляют_ новые данные в базу Git.
Очень сложно заставить систему удалить данные либо сделать что-то, что нельзя впоследствии отменить.
Как и в любой другой системе контроля версий, вы можете потерять или испортить свои изменения, пока они не зафиксированы, но после того, как вы зафиксируете снимок в Git, будет очень сложно что-либо потерять, особенно, если вы регулярно синхронизируете свою базу с другим репозиторием.
Как и в любой другой системе контроля версий, вы можете потерять или испортить свои изменения, пока они не зафиксированы, но после того, как вы зафиксируете снимок в Git, будет очень сложно что-либо потерять, особенно если вы регулярно синхронизируете свою базу с другим репозиторием.

Всё это превращает использование Git в одно удовольствие, потому что мы знаем, что можем экспериментировать, не боясь серьёзных проблем.
Для более глубокого понимания того, как Git хранит свои данные и как вы можете восстановить данные, которые кажутся утерянными, см. <<ch02-git-basics-chapter#r_undoing>>.
Expand All @@ -94,19 +94,19 @@ image::images/areas.png["Рабочая копия, область индекс
Рабочая копия является снимком одной версии проекта.
Эти файлы извлекаются из сжатой базы данных в каталоге Git и помещаются на диск, для того чтобы их можно было использовать или редактировать.

Область индексирования -- это файл, обычно находящийся в каталоге Git, в нём содержится информация о том, что попадёт в следующий коммит.
Область индексирования -- это файл, обычно находящийся в каталоге Git. В нём содержится информация о том, что попадёт в следующий коммит.
Её техническое название на языке Git -- «индекс», но фраза «область индексирования» также работает.

Каталог Git -- это то место, где Git хранит метаданные и базу объектов вашего проекта.
Это самая важная часть Git и это та часть, которая копируется при _клонировании_ репозитория с другого компьютера.

Базовый подход в работе с Git выглядит так:
Базовый подход в работе с Git выглядит так.

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

Если определённая версия файла есть в каталоге Git, эта версия считается _зафиксированной_ (committed).
Если файл был изменён и добавлен в индекс, значит, он _индексирован_ (staged).
И если файл был изменён с момента последнего распаковывания из репозитория, но не был добавлен в индекс, он считается _изменённым_ (modified).
В главе <<ch02-git-basics-chapter#ch02-git-basics-chapter>> вы узнаете больше об этих состояниях и какую пользу вы можете извлечь из них или как полностью пропустить часть с индексом.
В главе <<ch02-git-basics-chapter#ch02-git-basics-chapter>> вы узнаете больше об этих состояниях и о том, какую пользу вы можете извлечь из них, или как полностью пропустить этап индексирования.