Project

General

Profile

Git-working-copy » History » Version 4

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