forked from rogerdudler/git-guide
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.ru.html
231 lines (226 loc) · 15.1 KB
/
index.ru.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>git - the simple guide - no deep shit!</title>
<link href='http://fonts.googleapis.com/css?family=Chelsea+Market' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/normalize.css" type="text/css">
<link rel="stylesheet" href="css/style.css" type="text/css">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-652147-13']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
function recordOutboundLink(link, category, action) {
_gat._getTrackerByName()._trackEvent(category, action);
setTimeout('document.location = "' + link.href + '"', 100);
}
</script>
</head>
<body>
<div class="scrollblock block-title">
<h1>git - the simple guide</h1>
<p>простое руководство по работе с git. ничего сложного ;)</p>
<a href="https://twitter.com/share" class="twitter-share-button" data-via="rogerdudler" data-size="large" data-url="http://rogerdudler.github.com/git-guide" data-related="rogerdudler" data-hashtags="git">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<p class="meta">
<a href="http://www.twitter.com/rogerdudler">Роджер Дублер</a> (перевел <a href="http://dmitrywolf.com">Дмитрий Вольф</a>)
<br />спасибо <a href="http://www.twitter.com/tfnico">@tfnico</a>, <a href="http://www.twitter.com/fhd">@fhd</a> and <a href="http://www.namics.com">Namics</a><br />
это руководство на <a href="index.de.html">deutsch</a>, <a href="index.html">english</a>, <a href="index.es.html">español</a>, <a href="index.fr.html">français</a>, <a href="index.it.html">italiano</a>, <a href="index.nl.html">nederlands</a>, <a href="index.pt_BR.html">português</a><br />
об ошибках сообщайте на <a href="https://github.com/rogerdudler/git-guide/issues">github</a>
</p>
<img src="img/arrow.png" alt="" />
</div>
<!-- setup -->
<a name="setup"></a>
<div class="scrollblock block-setup">
<h2>установка</h2>
<p>
<a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3">Скачать git для OSX</a>
</p>
<p>
<a href="http://code.google.com/p/msysgit/downloads/list?can=3">Скачать git для Windows</a>
</p>
<p>
<a href="http://book.git-scm.com/2_installing_git.html">Скачать git для Linux</a>
</p>
</div>
<a name="create"></a>
<div class="scrollblock block-create">
<h2>создание нового репозитория</h2>
<p>
Для того чтобы создать новый репозиторий git необходимо
открыть папку где вы хотите его разместить и выполнить команду<br />
<code>git init</code><br />
</p>
</div>
<a name="checkout"></a>
<div class="scrollblock block-checkout">
<h2>получение репозитория</h2>
<p>
Создать локальную рабочую копию репозитория можно командой<br />
<code>git clone /путь/к/репозиторию</code><br />
когда используется удаленный сервер, команда будет<br />
<code>git clone юзер@хост:/путь/к/репозиторию</code>
</p>
</div>
<a name="trees"></a>
<div class="scrollblock block-trees">
<h2>рабочий процесс</h2>
<p>
Ваш локальный git репозиторий состоит из трех "сущностей".
<code>Рабочий каталог</code> (Working Directory) содержит файлы.
<code>Индекс</code> (Index) или область подготовленных файлов (Staging Area)</code>,
содержит информацию о том, что должно войти в следующий коммит и
<code>HEAD</code> указывает на последний коммит что вы сделали.
</p>
<img src="img/trees.png" alt="" />
</div>
<a name="add"></a>
<div class="scrollblock block-add">
<h2>Подготовка и коммит</h2>
<p>
Чтобы подготовить изменения (добавить их в <b>Индекс</b>) используйте<br />
<code>git add <имя_файла></code><br />
<code>git add *</code><br />
Это первый шаг в основном рабочем процессе. Сделать коммит подготовленных изменений можно командой<br />
<code>git commit -m "Описание коммита"</code><br />
Теперь изменения закреплены в локальном репозитории и на них указывает <b>HEAD</b>, но еще не в удаленном репозитории.
</p>
</div>
<a name="push"></a>
<div class="scrollblock block-remote">
<h2>отправка изменений</h2>
<p>
Чтобы отправить эти изменения в ваш удаленный репозиторий, выполните <br />
<code>git push origin master</code><br />
Можно изменить <i>master</i> на любую другую ветвь чтобы отправить изменения на неё.
<br /><br />
Если вы еще не клонировали существующий репозиторий и хотите подключить ваш к удаленному, вам нужно добавить его, выполнив<br />
<code>git remote add origin <адрес_сервера></code><br />
Теперь вы можете отправлять изменения на удаленный репозиторий<br />
</p>
</div>
<a name="branching"></a>
<div class="scrollblock block-branching">
<h2>ветвление</h2>
<p>
Ветки используются для разработки функционала изолированного от остального. Ветка <i>master</i> используется по умолчанию когда вы создаете репозиторий.
Используйте другие ветки для разработки и слияние в <i>master</i> когда разработка завершена.
</p>
<img src="img/branches.png" alt="" />
<p>
Создать новую ветку с названием "feature_x" и переключиться на неё можно командой<br />
<code>git checkout -b feature_x</code><br />
переключиться обратно на <i>master</i><br />
<code>git checkout master</code><br />
удалить ветку<br />
<code>git branch -d feature_x</code><br />
ветка не будет доступна тем, кто пользуется с вами удаленным репозиторием пока вы не отправите её туда<br />
<code>git push origin <имя_ветки></code>
</p>
</div>
<a name="update"></a>
<div class="scrollblock block-merging">
<h2>обновление и слияние</h2>
<p>
Обновить ваш локальный репозиторий, можно командой<br />
<code>git pull</code><br />
которая заберет изменения из удаленного репозитория и проведет слияние с активной веткой.<br />
Для того чтобы слить другую ветку с активной (например master), используйте команду<br />
<code>git merge <имя_ветки></code><br />
В ибоих случаях git пытается автоматически слить изменения. К сожалению, это не всегда возможно и результатом станет <i>конфликт</i>.
Вы ответственны за разрешение возникших <i>конфликтов</i>,
путем ручного редактирования файлов указанных git. После изменений вам надо пометить их как слитые<br />
<code>git add <имя_файла></code><br />
перед слиянием вы можете предварительно посмотреть на изменения<br />
<code>git diff <имя_ветки> <имя_другой_ветки></code>
</p>
</div>
<a name="tagging"></a>
<div class="scrollblock block-tagging">
<h2>метки</h2>
<p>
Рекомендуется использовать метки для закрепления момента выпуска версий. Это популярная практика, которая так же используется в SVN. Создать новую метку с именем <i>1.0.0</i> можно выполнив<br />
<code>git tag 1.0.0 1b2e1d63ff</code><br />
<i>1b2e1d63ff</i> это первые десять цифр уникального идентификатора (id) с которым будет связана метка. Чтобы посмотреть идентификаторы коммитов, выполните <br />
<code>git log</code><br />
Можно использовать меньшее количество символов в качестве идентификатора с учетом того что он является уникальным.
</p>
</div>
<a name="checkout-replace"></a>
<div class="scrollblock block-checkout-replace">
<h2>замена локальных изменений</h2>
<p>
В случае если вы сделали что-то не то, вы можете заменить локальные изменения, используя команду<br />
<code>git checkout -- <имя_файла></code><br />
произойдет замена изменений в вашем рабочем каталоге, на то что сейчас находится в HEAD. Изменения уже внесенные в индекс, так же как новые файлы будут сохранены.
</p>
<p>
Если же вы хотите удалить все ваши локальные изменения и коммиты, получите (fetch) последние изменения с сервера и укажите локальной ветке master на них вот так<br />
<code>git fetch origin</code><br />
<code>git reset --hard origin/master</code>
</p>
</div>
<a name="hints"></a>
<div class="scrollblock block-hints">
<h2>твики и удобные команды</h2>
<p>
встроенный в git графический интерфейс<br />
<code>gitk</code><br />
использовать цветной вывод в терминале<br />
<code>git config color.ui true</code><br />
выводить в логе коммит на одной строке<br />
<code>git config format.pretty oneline</code><br />
интерактивный способ добавления в индекс<br />
<code>git add -i</code>
</p>
</div>
<a name="resources"></a>
<div class="scrollblock block-resources">
<h2>полезные ссылки</h2>
<h3>графические интерфейсы</h3>
<p>
<ul>
<li><a href="http://gitx.laullon.com/">GitX (L) (OSX, открытый исходный код)</a></li>
<li><a href="http://www.git-tower.com/">Tower (OSX)</a></li>
<li><a href="http://www.sourcetreeapp.com/">Source Tree (OSX, бесплатный)</a></li>
<li><a href="http://mac.github.com/">GitHub for Mac (OSX, бесплатный)</a></li>
</ul>
</p>
<h3>руководства</h3>
<p>
<ul>
<li><a href="http://book.git-scm.com/">Git Community Book</a></li>
<li><a href="http://progit.org/book/ru/">Pro Git (перевод)</a></li>
<li><a href="http://think-like-a-git.net/">Think like a git</a></li>
<li><a href="http://help.github.com/">GitHub Help</a></li>
<li><a href="http://marklodato.github.com/visual-git-guide/index-en.html">A Visual Git Guide</a></li>
</ul>
</p>
</div>
<a name="comments"></a>
<div class="scrollblock block-comments">
<h2>комментарии</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'git-the-simple-guide'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<a href="http://www.git-tower.com/?source=rd" onClick="recordOutboundLink(this, 'Outbound Links', 'git-tower.com');return false;" class="tower"></a>
<a href="files/git_cheat_sheet.pdf" onClick="recordOutboundLink(this, 'Cheat Sheet', 'git-guide');return false;" class="cheatsheet"></a>
</body>
</html>