GIT

warning: Creating default object from empty value in /srv/www/nsws.ru/modules/taxonomy/taxonomy.pages.inc on line 34.

Новый раздел сайта

На сайте появился новый раздел - "Документация и руководства". И этот раздел сразу пополнился информацией по системе контроля версий GIT.
(посмотреть)

Git stash

Временами при работе с git одновременно нескольких человек возникают не очень красивые записи в журнале:

Merge branch 'master' of ssh://<user>@<server>/path/to/repo

Эти строки не несут особенно большого объема информации. Так, к примеру, посмотрев данный коммит в git-web мы не увидим никакой информации об измененных файлах. Такая ситуация возникает когда вы делаете git pull в вашей рабочей копии репозитория, в которую внесены изменения, при этом происходит авто слитие кода.

Настройка git

Для ускорения некоторых операций и увеличения удобства работы можно провести пару настроек:

Настройка цветного вывода:

git config --global color.ui "auto"

Настройка имени пользователя и почтового адреса (между прочим, это хороший тон):
git config user.name "FirstName LastName"
git config user.email "user@example.com"

Ускоряем дифы и отменяем ограничение на количество потоков упаковки при push:

git config --global diff.renamelimit "0"
git config --global pack.threads "0"

Работа с тегами

Как правило, кроме веток разработчики используют теги – чтобы запомнить состояние кода в какой-то момент. Тег – это своеобразный слепок, точно идентифицирующий состояние кода. Гит умеет работать с подписанными GPG тегами и с неподписанными. Здесь я рассмотрю только неподписанные теги.

Для создания такого тега необходимо выполнить команду:

git tag <tag name>

Чтобы убрать тег необходимо выполнить:
git tag -d <tag name>

Использование веток

Рано или поздно в любом проекте возникает ситуация, когда требуется заморозить изменения, но продолжать работать, а на замороженные изменения накладывать только баг-фиксы. Для этой цели служат ветви (branch)

В гите можно создать ветку от любого места. Для создания ветки от основного дерева надо выполнить следующую команду:

git checkout --track -b name_of_newbranch origin/master

В результате этой команды вы увидите примерно такое сообщение:
 

Базовые операции

Для базовой работы с любой системой контроля версий требуется не особенно большой набор операций: добавление файла в репозиторий, удаление файла из репозитория, комит изменений в репозиторий, отмена незакомиченных изменений и получение списка изменений.

Добавление списка файлов в комит:

 
  git add file1 file2 ... fileN 
 

Добавление всех недобавленных файлов в комит:
 
  git add -a
 

Удаление файла из комита:
 

Обновление данных

С таким локальным репозиторием можно работать долгое время, однако, когда-то у вас все же возникнет необходимость передать сделанные вами изменения в удаленный репозиторий, чтобы результатами вашего труда могли воспользоваться другие участники разработки, и получить из удаленного репозитория новую версию. Для этого служат команды pull и push.

 git pull
 

Данная команда получает обновленную версию из удаленного репозитория, при этом она проверяет на наличие различных проблем при объединении репозиториев и сообщает об этом.

Получение и оправка репозитория

Разумеется, после создания репозитория разумно узнать “а как же получить эти данные на свой компьютер?”.

Для данной операции используется команда clone. Она создает полную копию удаленного репозитория у вас. Под полной копией понимается именно полная копия, со всеми ветками, удаленными файлами и т.д.

Создание нового репозитория

Создание нового репозитория – это наверное первая из задач, с которой сталкивается любой разработчик. К данной проблеме есть несколько подходов.

Во-первых, можно использовать только локальный репозиторий, но смысла особого я в этом не вижу.

Во-вторых, можно создать открытый репозиторий, с которым смогут работать другие люди. Рассмотрим этот вариант. Предположим, что у вас есть некий сервер example.com и ваша рабочая машинка.

GIT

Git – это распределенная система контроля версий. Основные ее преимущества это распределенность и использование бинарных дифов, что упрощает работу с системой нескольких пользователей одновременно, и упрощает хранение бинарных файлов, ресурсов.
Git используется во многих крупных проектах: Linux kernel, Cairo, Mesa, Wine и многих других.
 

RSS-материал