Статистика

Участников проекта 105
Опубликовано статей 78
Отчет по карме. Топ 20

Новости блога

1 29.11.2013  Сегодня самым активным участникам newblog'а был выплачен доход с sape.
7 02.11.2012  Ура! Свешилось, нашему сайту дали тИЦ 10. Спасибо всем кто принимает участие в развитии нашего блога.
8 21.08.2012  Интеграция с sape.ru. Теперь каждый автор статей на newblog автоматически зарабатывает на рекламе.
Все новости

Топ 5 категорий

Программирование 46
Операционные системы 9
Базы данных 4
Туризм 2
Заметки 2

Последние 5 заметок (90)

gullyar - Закладки gullyar
gullyar - Ваша первая закладка
osadchaya - Закладки osadchaya
Ira0231188 - Закладки Ira0231188
Ira0231188 - Закладки Ira0231188

Ссылки

www.freedev.asia

Начало работы с git (часть 1)

21.04.2012 19:00 | Просмотров: 2616 | Доход: 44.7 руб. | Комментариев: 0
[Программирование] 
Рейтинг: 4/2

Сегодня git написанный Линусом Торвальдсом является пожалуй самой популярной системой контроля версий. Многие программисты переходят с subversion на git. Эта система не предоставляет каких либо стандартных графических элементов управления и является консольной, но это ее не делает менее удобной в использовании. Для начала работы первым делом необходимо установить пакет git-core, к счастью в debian и других популярных дистрибутивах он есть в стандартном репозитории.
apt-get install git-core

Для коммита в git необходимо задать имя и e-mail
git config --global user.name "GM"
git config --global user.email ***@***.ru
 
Проверяем успешность регистрации
git config -l

Создаю директорию проекта и файл для примера
mkdir prj
cd prj
echo "<?php echo 'first'?>" > index.php

 

Для добавления текущей директории в git достаточно ввести команду
git init
Initialized empty Git repository in ../prj/.git/
 
Описание репозитория находится в файле .git/description
echo "Тестовый репозиторий" > .git/description
 
Файлы в репозиторий добавляются очень просто
git add index.php
git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file:   index.php

 

Для того чтобы сделать коммит:
git commit -a -m "first commit"
[master (root-commit) 924afeb] first commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 index.php
 
git status покажет что никаких изменений небыло, попробуем изменить файл
echo "<?php echo 'two'?>" > index.php
git status
On branch master
Changed but not updated:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified:   index.php
no changes added to commit (use "git add" and/or "git commit -a")

 

Если необходимо добавить эти изменения, то делаем git add, если необходимо отказаться от изменений то git checkout. Если добавить и не делать коммит, то файл будет проиндексирован и внесен в репозиторий при первом коммите. Команда git reset позволяет сбросить индексацию с файлов.
git commit -a -m "index.php modified"
[master 8b8bfd9] index.php modified
1 files changed, 1 insertions(+), 1 deletions(-)
 
git при каждом коммите ведет историю имзенений
git log или git log --pretty=oneline(для сокращенного отображения)
commit 8b8bfd91ef9765baa7e241d298c3c5369aaa0d7a
Author: GM <xx@xx.xx>
Date:   Sat Apr 21 19:21:21 2012 +0600
index.php modified
commit 924afebe6b97c09ed15fbd5f8067d7fd622a34d6
Author: GM <xx@xx.xx>
Date:   Sat Apr 21 19:16:46 2012 +0600
first commit
 
Для того чтобы откатиться к нужному изменению используем git checkout [хеш], который выводится в git log
git checkout master - переключит на последнюю версию выбранной ветки, название master - по умолчанию
Если указать не название тега а файл, то git заменит на последнюю версию файла с репозитория
Создать тег для версии можно следующей командой
git tag two
 
git позволяет обратиться к непосредственному родителю используя символ ^
например git checkout two^ вернет нас к версии master
Посмотреть список всех тегов можно командой
 
git tag
git устроен так что даже отмененные действия не потеряются в истории. Их всегда можно просмотреть с помощью git hist --all
Создать ветку и сделать в нее checkout можно сокращенной командой
git checkout -b new
 
В следующей статье постараюсь описать подробно про слияние веток и разрешение конфликтов. В комментах можете оставлять пожелания того что вы хотите видеть во второй статье.
 

© GM
| Комментировать статью |