Git-working-copy » History » Revision 3
Revision 2 (Александр Бородин, 10/28/2012 02:15 PM) → Revision 3/8 (Александр Бородин, 10/28/2012 02:53 PM)
h1. Управление Создание рабочей копией копии удаленного репозитория Программист получает текущую актуальную копию удаленного репозитория — так называемую рабочую копию, далее работает с ней, периодически синхронизируя с центральным репозиторием (отправляя и получая изменения). Во всех примерах этого руководства подставьте имя вашего конкретного каталога репозитория вместо repodir. h2. Клонирование существующего репозитория Рабочую копию существующего репозитория можно создать, сделав его клон. Предварительно создаем каталог для рабочей копии и переходим в него. Выполняем следующую команду (вне вычислительной системы кафедры вместо $(whoami) подставьте ваше входное имя). <pre><code class="bash"> user@computer:~> user@epsilon:~/mad> git clone ssh://$(whoami)@kappa.cs.prv/groups/repos/git/repodir </code></pre> В результате клонирования в текущем каталоге будет создан каталог с рабочей копией. h2. Создаем рабочую копию вручную Этот способ позволяет выполнить привязку к удаленному репозиторию вручную. <pre><code class="bash"> user@computer:~/repodir> git init Initialized empty Git repository in .git/ user@computer:~/repodir> user@epsilon:~/mad> git remote add origin ssh://$(whoami)@kappa.cs.prv/groups/repos/git/repodir ssh://$(whoami)@kappa.cs.prv/groups/repos/git/mad user@computer:~/repodir> user@epsilon:~/mad> git fetch user@computer:~/repodir> user@epsilon:~/mad> git pull origin master </code></pre> или <pre><code class="bash"> user@epsilon:~/mad> git clone ssh://$(whoami)@kappa.cs.prv/groups/repos/git/mad </code></pre> h2. Модификация информации о разработчике Каждый коммит в удаленный репозиторий идентифицируется автором. Настраиваем рабочую копию, чтобы данные об авторе включались в отправленные коммиты. <pre><code class="bash"> git config --global user.name "Your Name" git config --global user.email you@example.com </code></pre> h2. Получение изменений из центрального репозитория <pre><code class="bash"> user@computer:~/repodir> git fetch user@computer:~/repodir> git pull origin master </code></pre> Команды для выполнения на стороне клиента h2. Управление файлами рабочей копии и отправка изменений в центральный репозиторий # Создаем по крайней мере один файл для начального коммита <pre><code class="bash"> user@computer:~/repodir> user@epsilon:~/mad> ls README </code></pre> # Инициализируем локальный репозиторий в текущем каталоге <pre><code class="bash"> user@epsilon:~/mad> git init Initialized empty Git repository in .git/ </code></pre> # Добавляем файлы под контроль версий и выполняем коммит <pre><code class="bash"> user@computer:~/repodir> user@epsilon:~/mad> git add * user@computer:~/repodir> user@epsilon:~/mad> git commit </code></pre> # В открывшемся редакторе (управление в стиле vi) набираем комментарий к начальному коммиту <PageDown><o>Repo created<Esc><Shift+ZZ> # Если всё в порядке, коммит выполняется <pre><code class="bash"> Created initial commit 70573e7: Repo created 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 README </code></pre> # Привязываем удаленный репозиторий <pre><code class="bash"> user@epsilon:~/mad> git remote add origin ssh://$(whoami)@kappa.cs.prv/groups/repos/git/mad </code></pre> # Синхронизируем с удаленным репозиторием <pre><code class="bash"> user@computer:~/repodir> user@epsilon:~/mad> git push origin master Password: updating 'refs/heads/master' from 0000000000000000000000000000000000000000 to 3c3f942d57e56dc4eecd5615b2051cf8e67f2bce Generating pack... Done counting 3 objects. Deltifying 3 objects... 100% (3/3) done Writing 3 objects... 100% (3/3) done Total 3 (delta 0), reused 0 (delta 0) </code></pre>