Project

General

Profile

Git-working-copy » History » Version 8

Александр Бородин, 10/28/2012 03:08 PM

1 3 Александр Бородин
h1. Управление рабочей копией удаленного репозитория
2 1 Александр Бородин
3 3 Александр Бородин
Программист получает текущую актуальную копию удаленного репозитория — так называемую рабочую копию, далее работает с ней, периодически синхронизируя с центральным репозиторием (отправляя и получая изменения).
4
Во всех примерах этого руководства подставьте имя вашего конкретного каталога репозитория вместо repodir.
5
6
h2. Клонирование существующего репозитория
7
8
Рабочую копию существующего репозитория можно создать, сделав его клон. Предварительно создаем каталог для рабочей копии и переходим в него. Выполняем следующую команду (вне вычислительной системы кафедры вместо $(whoami) подставьте ваше входное имя).
9 1 Александр Бородин
<pre><code class="bash">
10 3 Александр Бородин
user@computer:~>  git clone ssh://$(whoami)@kappa.cs.prv/groups/repos/git/repodir
11 1 Александр Бородин
</code></pre>
12 3 Александр Бородин
В результате клонирования в текущем каталоге будет создан каталог с рабочей копией.
13
14
h2. Создаем рабочую копию вручную
15
16
Этот способ позволяет выполнить привязку к удаленному репозиторию вручную. 
17 1 Александр Бородин
<pre><code class="bash">
18 3 Александр Бородин
user@computer:~/repodir> git init
19
Initialized empty Git repository in .git/
20
user@computer:~/repodir> git remote add origin ssh://$(whoami)@kappa.cs.prv/groups/repos/git/repodir
21
user@computer:~/repodir> git fetch
22 4 Александр Бородин
user@computer:~/repodir> git pull
23 2 Александр Бородин
</code></pre>
24
25 1 Александр Бородин
h2. Модификация информации о разработчике
26
27 3 Александр Бородин
Каждый коммит в удаленный репозиторий идентифицируется автором. Настраиваем рабочую копию, чтобы данные об авторе включались в отправленные коммиты.
28 1 Александр Бородин
<pre><code class="bash">
29
git config --global user.name "Your Name"
30 2 Александр Бородин
git config --global user.email you@example.com
31 1 Александр Бородин
</code></pre>
32 2 Александр Бородин
33 3 Александр Бородин
h2. Получение изменений из центрального репозитория
34 5 Александр Бородин
35 3 Александр Бородин
<pre><code class="bash">
36
user@computer:~/repodir> git fetch
37 7 Александр Бородин
user@computer:~/repodir> git pull
38 3 Александр Бородин
</code></pre>
39 1 Александр Бородин
40 3 Александр Бородин
h2. Управление файлами рабочей копии и отправка изменений в центральный репозиторий
41 6 Александр Бородин
42 8 Александр Бородин
В каталоге рабочей копии программист видит файлы выбранной ветви (изначально master) кода. Файлы других ветвей и служебные файлы и каталоги git размещаются в скрытом подкаталоге .git.
43
44 2 Александр Бородин
# Создаем по крайней мере один файл для начального коммита
45
<pre><code class="bash">
46 3 Александр Бородин
user@computer:~/repodir> ls
47 2 Александр Бородин
README
48
</code></pre>
49 3 Александр Бородин
# Добавляем файлы под контроль версий и выполняем коммит
50 2 Александр Бородин
<pre><code class="bash">
51 3 Александр Бородин
user@computer:~/repodir> git add *
52
user@computer:~/repodir> git commit
53 2 Александр Бородин
</code></pre>
54
# В открывшемся редакторе (управление в стиле vi) набираем комментарий к начальному коммиту
55
<PageDown><o>Repo created<Esc><Shift+ZZ>
56
# Если всё в порядке, коммит выполняется
57
<pre><code class="bash">
58
Created initial commit 70573e7: Repo created
59
 1 files changed, 1 insertions(+), 0 deletions(-)
60
 create mode 100644 README
61
</code></pre>
62
# Синхронизируем с удаленным репозиторием
63
<pre><code class="bash">
64 3 Александр Бородин
user@computer:~/repodir> git push origin master
65 2 Александр Бородин
Password:
66
updating 'refs/heads/master'
67
  from 0000000000000000000000000000000000000000
68
  to   3c3f942d57e56dc4eecd5615b2051cf8e67f2bce
69
Generating pack...
70
Done counting 3 objects.
71
Deltifying 3 objects...
72
 100% (3/3) done
73 1 Александр Бородин
Writing 3 objects...
74
 100% (3/3) done
75
Total 3 (delta 0), reused 0 (delta 0)
76
</code></pre>