Skip to content

Commit 8e6ed5c

Browse files
author
Ivan1986
committed
Apply patch by Dmitry Medvinsky, thanks
1 parent 6b75ed8 commit 8e6ed5c

1 file changed

Lines changed: 48 additions & 40 deletions

File tree

ru/basic.txt

Lines changed: 48 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
== Базовые операции ==
22

3-
Прежде чем погружаться в дебри многочисленных Git команд, попробуйте воспользоваться этими простыми примерами, чтобы немного освоиться. Несмотря на свою простоту, каждая из них является полезной.
3+
Прежде чем погружаться в дебри многочисленных команд Git, попробуйте воспользоваться приведёнными ниже простыми примерами, чтобы немного освоиться. Несмотря на свою простоту, каждый из них является полезным.
44

5-
Действительно, в первые месяцы использования Git я не выходил за рамки материала изложенного в этой главе.
5+
В самом деле, первые месяцы использования Git я не выходил за рамки материала, изложенного в этой главе.
66

77
=== Сохранение состояния ===
88

9-
Выполняете опасную операцию? Перед тем, как сделать это, создайте снимок всех файлов в текущей директории с помощью команд:
9+
Выполняете опасную операцию? Прежде чем сделать это, создайте снимок всех файлов в текущей директории с помощью команд:
1010

11-
$ git init
12-
$ git add .
11+
$ git init
12+
$ git add .
1313
$ git commit -m "Мой первый бекап"
14-
15-
Теперь, если ваши новые правки все испортили, запустите:
14+
15+
Теперь, если ваши новые правки всё испортили, запустите:
1616

1717
$ git reset --hard
1818

19-
чтобы вернуться к исходному состоянию. Чтобы вновь сохраниться выполните:
19+
чтобы вернуться к исходному состоянию. Чтобы вновь сохраниться, выполните:
2020

2121
$ git commit -a -m "Другой бекап"
2222

23-
==== Добавление, Удаление, Переименование ====
23+
==== Добавление, удаление, переименование ====
2424

25-
Приведенный выше пример будет отслеживать файлы, которые вы добавили когда впервые запустили *git add*. Если вы хотите добавить новые файлы или поддиректории, вам придется сказать Git:
25+
Приведенный выше пример будет отслеживать файлы, которые вы добавили, когда впервые запустили *git add*. Если вы хотите добавить новые файлы или поддиректории, вам придётся сказать Git:
2626

2727
$ git add НОВЫЕ_ФАЙЛЫ...
2828

29-
Аналогично, если вы хотите чтобы Git забыл о некоторых файлах, может быть, потому, что вы удалите их:
29+
Аналогично, если вы хотите, чтобы Git забыл о некоторых файлах, например, потому что вы удалили их:
3030

3131
$ git rm СТАРЫЕ_ФАЙЛЫ...
3232

33-
Переименование файла это то же, что и удаление старого имени и добавления нового. Для этого есть *git mv*, который имеет тот же синтаксис, что и команда *mv*. Например:
33+
Переименование файла это то же, что и удаление старого имени и добавления нового. Для этого есть *git mv*, который имеет тот же синтаксис, что и команда *mv*. Например:
3434

3535
$ git mv OLDFILE NEWFILE
3636

@@ -40,7 +40,7 @@
4040

4141
$ git log
4242

43-
покажет вам список последних изменений (коммитов, прим. пер.), и их SHA1 хеши. Далее введите:
43+
покажет вам список последних изменений (коммитов, прим. пер.) и их SHA1 хеши. Далее введите:
4444

4545
$ git reset --hard SHA1_HASH
4646

@@ -52,33 +52,33 @@
5252

5353
Это перенесет вас назад во времени, до тех пор пока вы не сделаете новые коммиты. Как и в фантастических фильмах о путешествиях во времени, если вы редактируете и коммитите код, вы будете находиться в альтернативной реальности, потому что ваши действия отличаются от тех, что вы делали до этого.
5454

55-
Эта альтернативная реальность называется 'бранч' и
55+
Эта альтернативная реальность называется «ветвь» (branch, прим. пер.), и
5656
<<branch,мы поговорим об этом больше чуть позже>>. А сейчас просто запомните:
5757

5858
$ git checkout master
5959

6060
вернёт вас обратно в настоящее. Кроме того, чтобы не получать предупреждений от Git, всегда делайте коммит или сброс ваших изменений до запуска checkout.
6161

62-
Еще раз воспользуемся терминологией компьютерных игр:
62+
Ещё раз воспользуемся терминологией компьютерных игр:
6363

6464
- *`git reset --hard`*: загружает ранее сохраненную игру и удаляет все версии, сохраненные после только что загруженной.
6565

66-
- *`git checkout`*: загружает старую игру, но если вы продолжаете играть, состояние игры будет отличаться от более новых сохранок, которые вы сделали в первый раз. Любая игра, которую вы теперь сохраняете, попадает в отдельный бранч, прадставляющий альтенативную реальность, в которую вы вошли.
67-
<<branch,как мы договорились, о бранчах поговорим позже>>
66+
- *`git checkout`*: загружает старую игру, но если вы продолжаете играть, состояние игры будет отличаться от более новых сохранений, которые вы сделали в первый раз. Любая игра, которую вы теперь сохраняете, попадает в отдельную ветвь, представляющую альтенативную реальность, в которую вы вошли.
67+
<<branch,Как мы договорились, о бранчах поговорим позже>>.
6868

69-
Вы можете выбрать для восстановления только определенные файлы и поддиректории путём добавления их после команды:
69+
Вы можете выбрать для восстановления только определенные файлы и поддиректории путём перечисления их имён после команды:
7070

7171
$ git checkout SHA1_HASH some.file another.file
7272

73-
Будьте внимательны, такая форма *checkout* (чекаута) может незаметно перезаписать файлы. Чтобы избежать неприятных неожиданностей, выполняйте коммит до запуска "чекаут", особенно если вы впервые пробуете Git. Вообще, если вы не уверены в какой-либо операции, будь то команда Git или нет, сперва выполните *git commit -a*.
73+
Будьте внимательны: такая форма *checkout* может незаметно перезаписать файлы. Чтобы избежать неприятных неожиданностей, выполняйте коммит до запуска checkout, особенно если вы только осваиваетесь с Git. Вообще, если вы не уверены в какой-либо операции, будь то команда Git или нет, сперва выполните *git commit -a*.
7474

7575
Не любите копировать и вставлять хеши? Используйте:
7676

7777
$ git checkout :/"Мой первый б"
7878

7979
для перехода на коммит, который начинается с приведенной строки.
8080

81-
Можно также запросить 5-е последнее сохраненное состояние:
81+
Можно также запросить 5-ое с конца сохраненное состояние:
8282

8383
$ git checkout master~5
8484

@@ -89,11 +89,18 @@
8989
$ git commit -a
9090
$ git revert SHA1_HASH
9191

92-
отменит текущий коммит с учетом выбранного хеша. Запущенный *git log* показывает, что изменение записано в качестве нового коммита.
92+
отменит коммит с выбранным хешем. Запущенный *git log* показывает, что изменение записано в качестве нового коммита.
93+
94+
=== Создание списка изменений ===
95+
96+
Некоторым проектам требуется http://en.wikipedia.org/wiki/Changelog[список изменений] (changelog, прим. пер.).
97+
Создать такой список вы можете, просто направив вывод *git log* в файл:
98+
99+
$ git log > ChangeLog
93100

94101
=== Скачивание файлов ===
95102

96-
Получить копию проекта под управлением Git можно набрав:
103+
Получить копию проекта под управлением Git можно, набрав:
97104

98105
$ git clone git://server/path/to/files
99106

@@ -103,15 +110,15 @@
103110

104111
Мы поговорим больше о команде *clone* позже.
105112

106-
=== Сглаживание углов ===
113+
=== На острие ножа ===
107114

108-
Если вы уже загрузили копию проекта с помощью *git clone*, вы можете обновить его до последней версии используя:
115+
Если вы уже загрузили копию проекта с помощью *git clone*, вы можете обновить его до последней версии, используя:
109116

110117
$ git pull
111118

112119
=== Публичный доступ ===
113120

114-
Предположим, вы написали скрипт которым хотите поделиться с другими. Можно просто позволить всем загружать его с вашего компьютера, но, если они будут делать это в то время, как вы дорабатываете его или добавляете экспериментальную функциональность, у них могут возникнуть проблемы. Конечно, это одна из причин существования цикла разработки. Разработчики могут долго работать над проектом, но открывать доступ к коду следует только после того, как код приведен в приличный вид.
121+
Предположим, вы написали скрипт, которым хотите поделиться с другими. Можно просто позволить всем загружать его с вашего компьютера, но, если они будут делать это в то время, как вы дорабатываете его или добавляете экспериментальную функциональность, у них могут возникнуть проблемы. Конечно, это одна из причин существования цикла разработки. Разработчики могут долго работать над проектом, но открывать доступ к коду следует только после того, как код приведен в приличный вид.
115122

116123
Чтобы сделать это с помощью Git, выполните в директории, где лежит ваш скрипт:
117124

@@ -123,7 +130,7 @@
123130

124131
$ git clone ваш.компьютер:/path/to/script
125132

126-
для того чтобы загрузить ваш скрипт. Это подразумевает что у вас есть доступ по ssh. Если нет, запустите *git daemon* и скажите пользователям использовать для запуска:
133+
для того чтобы загрузить ваш скрипт. Это подразумевает что у вас есть доступ по ssh. Если нет, запустите *git daemon* и скажите остальным использовать для запуска:
127134

128135
$ git clone git://ваш.компьютер/path/to/script
129136

@@ -135,19 +142,19 @@
135142

136143
$ git pull
137144

138-
Ваши пользователи никогда не попадут на версии скрипта, доступ к которым вы скрываете. Безусловно, что этот трюк работает для всего, не только в случаях со скриптами.
145+
ваши пользователи никогда не попадут на версии скрипта, доступ к которым вы скрываете. Безусловно, этот трюк работает для всего, а не только в случаях со скриптами.
139146

140147
=== Что я наделал? ===
141148

142-
Выяснить, какие изменения вы сделали со времени последнего коммита:
149+
Выясните, какие изменения вы сделали со времени последнего коммита:
143150

144151
$ git diff
145152

146153
Или со вчерашнего дня:
147154

148155
$ git diff "@{yesterday}"
149156

150-
Или между определенной версией и 2-мя предыдущими версиями.
157+
Или между определенной версией и версией, сделанной 2 коммита назад:
151158

152159
$ git diff SHA1_HASH "master~2"
153160

@@ -158,28 +165,29 @@
158165
$ git whatchanged --since="2 weeks ago"
159166

160167
Часто я смотрю историю при помощи http://sourceforge.net/projects/qgit[qgit] вместо стандартного способа,
161-
из-за приятного фотогеничного интерфейса, или с помощью http://jonas.nitro.dk/tig[tig] с текстовым интерфейсом,
162-
который хорошо работает при медленном соединении. В качестве альтернативы, можно проинсталировать веб-сервер,
168+
из-за приятного интерфейса, или с помощью http://jonas.nitro.dk/tig[tig] с текстовым интерфейсом,
169+
который хорошо работает при медленном соединении. В качестве альтернативы, можно запустить веб-сервер,
163170
введя *git instaweb*, и запустить любой веб-браузер.
164171

165172
=== Упражнение ===
166173

167-
Пусть A, B, C, D четыре успешных коммита, где В - то же, что и A, но с несколькими удаленными файлами. Мы хотим вернуть файлы в D, но не в B. Как это можно сделать?
174+
Пусть A, B, C, D четыре успешных коммита, где В то же, что и A, но с несколькими удаленными файлами. Мы хотим вернуть файлы в D, но не в B. Как это можно сделать?
168175

169176
Существует как минимум три решения. Предположим, что мы находимся на D.
170177

171-
1. Разница между A и B - удаление файлов.
178+
1. Разница между A и B удаление файлов.
172179
Мы можем создать патч, отражающий эти изменения, и применить его:
173-
180+
174181
$ git diff B A | git apply
175-
176-
2. Поскольку мы сохранили файлы обратно в A, мы можем получить их обратно:
177-
182+
183+
2. Поскольку в коммите A мы сохранили файлы, мы можем получить их обратно:
184+
178185
$ git checkout A FILES...
179-
186+
180187
3. Мы можем рассматривать переход от A до B в качестве изменений, которые мы хотим отменить:
181-
188+
182189
$ git revert B
183190

184191
Какой способ лучший?
185-
Тот, который вам больше нравится. С Git легко сделать все, что вы хотите, причем часто существует много способов сделать одно и то же.
192+
Тот, который вам больше нравится. С Git легко сделать все, что вы хотите, причём часто существует много разных способов сделать одно и то-же.
193+

0 commit comments

Comments
 (0)