Project

General

Profile

Git-working-copy » History » Version 7

Александр Бородин, 10/28/2012 02:58 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 2 Александр Бородин
# Создаем по крайней мере один файл для начального коммита
43
<pre><code class="bash">
44 3 Александр Бородин
user@computer:~/repodir> ls
45 2 Александр Бородин
README
46
</code></pre>
47 3 Александр Бородин
# Добавляем файлы под контроль версий и выполняем коммит
48 2 Александр Бородин
<pre><code class="bash">
49 3 Александр Бородин
user@computer:~/repodir> git add *
50
user@computer:~/repodir> git commit
51 2 Александр Бородин
</code></pre>
52
# В открывшемся редакторе (управление в стиле vi) набираем комментарий к начальному коммиту
53
<PageDown><o>Repo created<Esc><Shift+ZZ>
54
# Если всё в порядке, коммит выполняется
55
<pre><code class="bash">
56
Created initial commit 70573e7: Repo created
57
 1 files changed, 1 insertions(+), 0 deletions(-)
58
 create mode 100644 README
59
</code></pre>
60
# Синхронизируем с удаленным репозиторием
61
<pre><code class="bash">
62 3 Александр Бородин
user@computer:~/repodir> git push origin master
63 2 Александр Бородин
Password:
64
updating 'refs/heads/master'
65
  from 0000000000000000000000000000000000000000
66
  to   3c3f942d57e56dc4eecd5615b2051cf8e67f2bce
67
Generating pack...
68
Done counting 3 objects.
69
Deltifying 3 objects...
70
 100% (3/3) done
71 1 Александр Бородин
Writing 3 objects...
72
 100% (3/3) done
73
Total 3 (delta 0), reused 0 (delta 0)
74
</code></pre>