Project

General

Profile

Git-working-copy » History » Version 5

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