Project

General

Profile

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>