Skip to content

Commit 24419f9

Browse files
authored
Merge pull request #201 from Menelion/fix-01-02
Правка раздела 2 главы 1
2 parents 5fb698a + 931d6a2 commit 24419f9

1 file changed

Lines changed: 25 additions & 25 deletions

File tree

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
=== Основы Git
22

33
Что же такое Git, если говорить коротко?
4-
Очень важно понять эту часть материала, потому что если вы поймёте что такое Git и основы того, как он работает, тогда, возможно, вам будет гораздо проще его использовать.
5-
Пока вы изучаете Git, попробуйте забыть всё, что вы знаете о других СКВ, таких как Subversion и Perforce; это позволит вам избежать определённых проблем при использовании утилиты.
4+
Очень важно понять эту часть материала, потому что если вы поймёте, что такое Git и основы того, как он работает, тогда, возможно, вам будет гораздо проще его использовать.
5+
Пока вы изучаете Git, попробуйте забыть всё, что вы знаете о других СКВ, таких как Subversion и Perforce. Это позволит вам избежать определённых проблем при использовании инструмента.
66
Git хранит и использует информацию совсем иначе по сравнению с другими системами, даже несмотря на то, что интерфейс пользователя достаточно похож, и понимание этих различий поможет вам избежать путаницы во время использования.(((Subversion)))(((Perforce)))
77

88
==== Снимки, а не различия
99

10-
Основное отличие Git'а от любой другой СКВ (Subversion и её собратья включительно), это подход Git'а к работе со своими данными.
10+
Основное отличие Gitа от любой другой СКВ (включая Subversion и её собратьев) — это подход Gitа к работе со своими данными.
1111
Концептуально, большинство других систем хранят информацию в виде списка изменений в файлах.
12-
Эти системы (CVS, Subversion, Perforce, Bazaar и т.д.) представляют информацию в виде набора файлов и изменений, сделанных в каждом файле, по времени.
12+
Эти системы (CVS, Subversion, Perforce, Bazaar и т.д.) представляют хранимую информацию в виде набора файлов и изменений, сделанных в каждом файле, по времени (обычно это называют контролем версий, _основанным на различиях_).
1313

1414
.Хранение данных как набора изменений относительно первоначальной версии каждого из файлов.
1515
image::images/deltas.png[Хранение данных как набора изменений относительно первоначальной версии каждого из файлов.]
1616

1717
Git не хранит и не обрабатывает данные таким способом.
18-
Вместо этого, подход Git'а к хранению данных больше похож на набор снимков миниатюрной файловой системы.
19-
Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в Git'е, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок.
18+
Вместо этого, подход Gitа к хранению данных больше похож на набор снимков миниатюрной файловой системы.
19+
Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в Gitе, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок.
2020
Для увеличения эффективности, если файлы не были изменены, Git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён.
2121
Git представляет свои данные как, скажем, *поток снимков*.
2222

@@ -31,23 +31,23 @@ Git переосмысливает практически все аспекты
3131
==== Почти все операции выполняются локально
3232

3333
Для работы большинства операций в Git достаточно локальных файлов и ресурсов — в основном, системе не нужна никакая информация с других компьютеров в вашей сети.
34-
Если вы привыкли к ЦСКВ, где большинство операций имеют задержку из-за работы с сетью, то этот аспект Git'а заставит вас думать, что боги скорости наделили Git несказанной мощью.
34+
Если вы привыкли к ЦСКВ, где большинство операций страдают от задержек из-за работы с сетью, то этот аспект Gitа заставит вас думать, что боги скорости наделили Git несказанной мощью.
3535
Так как вся история проекта хранится прямо на вашем локальном диске, большинство операций кажутся чуть ли не мгновенными.
3636

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

4141
Это также означает, что есть лишь небольшое количество действий, которые вы не сможете выполнить, если вы находитесь оффлайн или не имеете доступа к VPN в данный момент.
42-
Если вы в самолёте или в поезде и хотите немного поработать, вы сможете создавать коммиты без каких-либо проблем: когда будет возможность подключиться к сети, все изменения можно будет синхронизировать.
42+
Если вы в самолёте или в поезде и хотите немного поработать, вы сможете создавать коммиты без каких-либо проблем (в вашу _локальную_ копию, помните?): когда будет возможность подключиться к сети, все изменения можно будет синхронизировать.
4343
Если вы ушли домой и не можете подключиться через VPN, вы всё равно сможете работать.
4444
Добиться такого же поведения во многих других системах либо очень сложно, либо вовсе невозможно.
4545
В Perforce, для примера, если вы не подключены к серверу, вам не удастся сделать многого; в Subversion и CVS вы можете редактировать файлы, но вы не сможете сохранить изменения в базу данных (потому что вы не подключены к БД).
4646
Всё это может показаться не таким уж и значимым, но вы удивитесь, какое большое значение это может иметь.
4747

4848
==== Целостность Git
4949

50-
В Git'е для всего вычисляется хеш-сумма, и только потом происходит сохранение. В дальнейшем обращение к сохранённым объектам происходит по этой хеш-сумме.
50+
В Gitе для всего вычисляется хеш-сумма, и только потом происходит сохранение. В дальнейшем обращение к сохранённым объектам происходит по этой хеш-сумме.
5151
Это значит, что невозможно изменить содержимое файла или директории так, чтобы Git не узнал об этом.
5252
Данная функциональность встроена в Git на низком уровне и является неотъемлемой частью его философии.
5353
Вы не потеряете информацию во время её передачи и не получите повреждённый файл без ведома Git.
@@ -61,14 +61,14 @@ SHA-1 хеш выглядит примерно так:
6161
24b9da6552252987aa493b52f8696cd6d3b00373
6262
----
6363

64-
Вы будете постоянно встречать хеши в Git'е, потому что он использует их повсеместно.
64+
Вы будете постоянно встречать хеши в Gitе, потому что он использует их повсеместно.
6565
На самом деле, Git сохраняет все объекты в свою базу данных не по имени, а по хеш-сумме содержимого объекта.
6666

67-
==== Git только добавляет данные
67+
==== Git обычно только добавляет данные
6868

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

7373
Всё это превращает использование Git в одно удовольствие, потому что мы знаем, что можем экспериментировать, не боясь серьёзных проблем.
7474
Для более глубокого понимания того, как Git хранит свои данные и как вы можете восстановить данные, которые кажутся утерянными, см. <<ch02-git-basics#r_undoing>>.
@@ -77,10 +77,10 @@ SHA-1 хеш выглядит примерно так:
7777

7878
Теперь слушайте внимательно.
7979
Это самая важная вещь, которую нужно запомнить о Git, если вы хотите, чтобы остаток процесса обучения прошёл гладко.
80-
Git имеет три основных состояния, в которых могут находиться ваши файлы: зафиксированном (committed), изменённом (modified) и подготовленном (staged).
81-
``Зафиксированный'' значит, что файл уже сохранён в вашей локальной базе.
82-
К изменённым относятся файлы, которые поменялись, но ещё не были зафиксированы.
83-
Подготовленные файлы — это изменённые файлы, отмеченные для включения в следующий коммит.
80+
У Git’а есть три основных состояния, в которых могут находиться ваши файлы: _зафиксированное_ (committed), _изменённое_ (modified) и _подготовленное_ (staged).
81+
* Зафиксированный значит, что файл уже сохранён в вашей локальной базе.
82+
* К изменённым относятся файлы, которые поменялись, но ещё не были зафиксированы.
83+
* Подготовленные файлы — это изменённые файлы, отмеченные для включения в следующий коммит.
8484

8585
Мы подошли к трём основным секциям проекта Git: Git-директория (Git directory), рабочая директория (working directory) и область подготовленных файлов (staging area).
8686

@@ -93,16 +93,16 @@ Git-директория — это то место, где Git хранит м
9393
Рабочая директория является снимком версии проекта.
9494
Файлы распаковываются из сжатой базы данных в Git-директории и располагаются на диске, для того чтобы их можно было изменять и использовать.
9595

96-
Область подготовленных файлов — это файл, располагающийся в вашей Git-директории, в нём содержится информация о том, какие изменения попадут в следующий коммит.
96+
Область подготовленных файлов — это файл, обычно располагающийся в вашей Git-директории, в нём содержится информация о том, какие изменения попадут в следующий коммит.
9797
Эту область ещё называют ``индекс'', однако называть её stage-область также общепринято.
9898

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

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

105-
Если определённая версия файла есть в Git-директории, эта версия закоммичена.
106-
Если файл изменён и добавлен в индекс, значит, он будет добавлен в следующий коммит.
107-
И если файл был изменён с момента последнего распаковывания из репозитория, но не был добавлен в индекс, он считается изменённым.
108-
В главе <<ch02-git-basics#ch02-git-basics>> вы узнаете больше об этих состояниях и какую пользу вы можете извлечь из них, либо как полностью пропустить часть с индексом.
105+
Если определённая версия файла есть в Git-директории, эта версия считается _зафиксированной_.
106+
Если версия файла изменена и добавлена в индекс, значит, она _подготовлена_.
107+
И если файл был изменён с момента последнего распаковывания из репозитория, но не был добавлен в индекс, он считается _изменённым_.
108+
В главе <<ch02-git-basics#ch02-git-basics>> вы узнаете больше об этих состояниях и какую пользу вы можете извлечь из них или как полностью пропустить часть с индексом.

0 commit comments

Comments
 (0)