Работа с Git, часть1 — Введение.

Работа с Git, часть1 — Введение.

Что такое Git? — если вы ещё не знаете, то будет гараздо лучше предложить вам прочитать об этом где-то в интернете, где рассписано понятно и с самых азов. Для дальнейшего прочтения, нужно что бы вы уже знали что такое Git и с чем его едят.

Сперва стоит добавить одно граффическое представление как работать с Git, на основе диаграммы последовательностей, так сказать work-flow:

На этой картинке указано самое главное, последовательность операций. Но если вы думаете что это всё, то вы ошибаетесь, это минимум который просто необходимо понять.

Дело в том что Git, как и другая система контроля версий, очень гибкая и в неё заложено всё что имеет хоть малейшее отношению к понятию «изменение файла или проекта».

Как уже было сказано выше, Git содержит огромное колличество возможностей, представленных консольными коммандами, вот тут есть полный список ( http://www.kernel.org/pub/software/scm/git/docs/ ). Смотря на этот список команд можно ужаснуться, но это первое и обманчивой мнение, советую не бояться, и пристрелить страх как бешанную собаку, и продолжать путь изучения.

Конечно же, трудно не заметить много нового на этой картинке: workspace, index, local repository, remote repository. Давайте скажем пару слов что же это.

workspace — рабочее пространство, которое находится на вашем компьютере, обычно месторасположение вы указываете сами.

index — index представление об изменениях.

local repository — локальный, измененный репозиорий, относительно оригинала (remote repository).

remote repository — репозиторий оригинал, с которого изначально должен забираться проект, и сюда же в конце он помещается, когда полностью готов.

 

И еще один work-flow, описывающий более глобально

 

Если у вас есть опыт работы с SVN то пригодится вот эта ссылка .

GIT COMMANDS

git -команды разделены на уровни — high level («porcelain«) и low level («plumbing«).

И этих комманд много :)

Основные команды:

 

Но что бы понять как все это работает нужно самому чтото да попробовать. На примере проще всего понять что и как.

 

 

 

Попробую сдеать в виде инструкции на примере. Для примера далее возьмем последнее ядро-Linux.

0) Подготавливаем директорию для Git-проекта

Создаем директорию для проекта

stas@host:~$ mkdir kernel
stas@host:~$ cd kernel

1) Создаем конфиг

stas@host:~/kernel$ cat ~/.gitconfig
[core]
 gitproxy = /home/stas/bin/git-proxy
[user]
 email = stas@mail.com
 name = Stas P
[color]
 ui = auto
#       pager = true
[alias] ci = commit -a co = checkout st = status -a # Local Mirror
#[url "/var/www/git/git.host0.org/"]
#       InsteadOf = git://git.host.org

В конфиге был добавлен [alias], и благодаря этому, теперь можно использовать команды с алиасами, вот так:

$ git ci -m 'some changes'

Конфиг, также, можно создать используя средства гита

git config --global user.name "Stas P" git config --global user.email "Stas.P@mail.com" git config --global push.default "matching" и т.д.

И можно проверить что в конфиге

git config --list

Создаем игнор-лист

stas@host:~/kernel$ cat ~/.gitignore
*.o
*~

Если я ни чего не забыл, то с этого этапа можно уже начинать чтото делать.

 

2) Заходим на сайт где есть Git-проект, и берем ссылку на проект.

Помните я говорил что начнем с ядра линукса? Так вот примера далее мы возьмем последнее ядро-Linux, но пока только для того что бы увидеть как работать с .git проектами (в данном случае это git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git ) и как начать чтото с ним делать.

Клонируем его в свою рабочую директорию.

stas@host:~/kernel$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Cloning into linux-2.6...
remote: Counting objects: 1986131, done.
remote: Compressing objects: 100% (317127/317127), done.
remote: Total 1986131 (delta 1652778), reused 1983866 (delta 1650828)
Receiving objects: 100% (1986131/1986131), 412.20 MiB | 47 KiB/s, done.
Resolving deltas: 100% (1652778/1652778), done.

 

3) Инициализируем рабочую директорию

Это самый первый этап.

stas@host:~/kernel$ git init

Reinitialized existing Git repository in /home/stas/kernel/.git/

4) Проверяем статус

stas@host:~/kernel$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       linux-2.6/
nothing added to commit but untracked files present (use "git add" to track)

 

Теперь можно начинать работать с проектом, и по его завершению, можно будет эти изменения вносить в репозиторий.
Но об этом в следующий раз, впрочем  можно еще много про Git писать :).

 

Немного забегая наперёд.

Вот еще есть полезные картинки, описывающие приоритеты и важность каждого этапа.

И вот ещё хочу показать наглядную диаграму: http://osteele.com/images/2008/commit-policies.png.

 

Если чтото не ясно или если есть чем дополнить — отвечайте, пишите.

При подготовке статьи использовались также материалы с сайтов — http://osteele.com/archives/2008/05/my-git-workflow и http://osteele.com/archives/2008/05/commit-policies .

 

Добавить комментарий