Issuu on Google+

документация

def Git (произн. «гит») — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. На сегодняшний день поддерживается Джунио Хамано.

Оглавление 1. Скачать. 2. Установить. 3. Учимся шагать. Создаем репозиторий. Индексируем файлы. Коммитим в репозиторий. Изменение файла. Просмотр истории. Восстановление из репозитория. Отправка и получение файлов из локального репозитория во внешний.

4. Smart Git 0. Полезные ссылки

Автор: Сергей Карашевич e-mail: karashevich@gmail.com дата: 15/10/2012


1. Скачать. Git - полезный инструмент для работы разработки приложения большой распределенной командой, при которой сами файлы (исходники проекта или скомпилированные файлы) храняться не обязательно только каком-либо выделенном сервере, а распределены непосредственно на машинах команды разработчиков. Итак первым делом необходимо установить себе пакет инструментов Git. Для этого отправляемся на сайт разработчика http://git-scm.com/downloads и выбираем дистрибутив для соответствующей ОС. Я буду показывать это на примере ОС Windows и Git-1.7.11-preview20120710.

2. Установить. Следуем всем советам установщика. Всего навсего потребуется 75 Мб свободного диского пространства. Везде жмем next, так как установщик плохого не пожелает. После установки нам предложат посмотреть Releases Notes, там подробным образом описано, какие ошибки учли ,и какие изменения внесли. После 30 минут кропотливого переваривания этой полезнейшей информации двигаемся дальше.

3. Учимся шагать. Давайте теперь поймем, что же мы поставили и как с этим работать. Во-первых, нам следует создать репозиторий. def Репозито́рий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

К примеру создадим репозиторий home/Git/test

Создаем репозиторий. Для этого запустим Git GUI (все программы → Git → Git GUI) и параллельно Git Bash (все программы → Git → Git Bash). Создадим репозиторий с помощью утилиты Git GUI. И теперь переключимся на Git Bash. Для этого перейдем в репозиторий. author@computer ~ $ cd Git/test Давайте теперь создадим файл: author@computer ~/Git/test (master) $ echo ‘Hello, world!’ > greeting Теперь в Git GUI следует нажать кнопку Перечитать и тогда в измененных отобразится файл “greeting” (Рисунок 1).


Рисунок 1

Индексируем файлы. Далее попробуем проиндексировать файл greeting. Для этого введем следующую команду: author@computer ~/Git/test (master) $ git init Мы должны получить примерно следующее: author@computer ~/Git/test (master) $ git init $ Reinitialized existing Git repository in c:/Users/author/Git/test/.git/ Далее мы проиндексируем наш файл greeting или подготовим его для сохранения в репозитории. Для этого следует воспользоваться следующей командой: author@computer ~/Git/test (master) $ git add greeting Возможно Git Bash при этом толеранто намекнет, что будут изменены символы конца строки на Юниксовые (такие следует выбирать по-умолчанию) для соотв. файла в репозитории. author@computer ~/Git/test (master) $ git add greeting warning: LF will be replaced by CRLF in greeting. The file will have its original line endings in you working directory. Теперь в Git GUI наш файл перешел в состояние подготовленного, как можно это видеть на рисунке:


Рисунок 2

Коммитим в репозиторий. Теперь, когда файл проиндексирован, давайте его направим в репозиторий (чтобы сохранить изменения). Для этого в Git Bash следует написать команду : author@computer ~/Git/test (master) $ git commit –m ‚Added my greetings‛ Ага, Bash попросил нас представиться, author@computer ~/Git/test (master) $ git commit –m ‚Added my greetings‛ *** Please tell me who are you. Run git config --global user.email ‚you@example.com‛ git config --global user.name ‚Your Name‛ to set your account’s default identify. Omit --global to set the identify only in this repository. … хорошо, скажем ему наше имя и скажем ему нашу почту: author@computer ~/Git/test (master) $ config --global user.email ‚karashevich@gmail.com‛ author@computer ~/Git/test (master) $ config --global user.name ‚Sergey Karashevich‛ и наконец, сделаем коммит:


author@computer ~/Git/test (master) $ git commit –m ‚Added my greetings‛ тогда Git Bash напишет нам следующее сообщение:

author@computer ~/Git/test (master) $ git commit –m ‚Added my greetings‛ [master (root-commit) 74b0cad] Added my greeting warning: LF will be replaced by CRLF in greeting. The file will have its original line endings in you working directory. 1 file changed, 1 insertion(+) create mode 100644 greeting Замечательно, теперь чтобы посмотреть какие файлы сохранены, для этого откроем Git GUI снова. Выберем в меню репозиторий → показать файлы ветви. Выбираем ветвь master и видим свой файл greeting (Рисунок 3).

Рисунок 3

Изменение файла. Теперь давайте попробуем изменить файл, проиндексировать и снова его закоммитить. Для этого напишем последовательно команды (в конце команды cat нажать Ctrl+D): author@computer ~/Git/test (master) $ cat > greeting ‚Hello, all worlds!‛ Теперь снова проиндексируем файл и закоммитим его: author@computer ~/Git/test (master) $ git add greeting author@computer ~/Git/test (master) $ git commit –m ‚in my greeting: greetings to all worlds‛ [master 7509521] in my greeting: greetings to all worlds 1 file changed, 1 insertion(+), 1 deletion(-)


Просмотр истории. Для просмотра истории изменений можно открыть Git GUI и выбрать в меню репозиторий → показать историюветви master, тогда мы увидем все изменения, которые были сделаны с файлом greeting (Рисунок 4):

Рисунок 4

либо можно набрать команду в Git Bash: author@computer ~/Git/test (master) $ git show commit 7509521961895e44ec5e38444723c2d766552fe1 Author: Sergey Karashevich <karashevich@gmail.com> Date: Tue Oct 16 05:05:50 2012 +0400 in my greeting: greetings to all worlds diff --git a/greeting b/greeting index a5c1966..099e742 100644 --- a/greeting +++ b/greeting @@ -1 +1 @@ -Hello, world +"" [DHello, all worlds!"

Восстановление из репозитория. Давайте теперь изменим наш файл и восстановим его из репозитория. Для этого напишем что-нибудь вроде (в конце команды cat не забыть нажать Ctrl+D):: author@computer ~/Git/test (master) $ cat > greeting nothing


давайте убедимся в том, что есть разница в том что у нас в файле с тем, что у нас в репозитории: author@computer ~/Git/test (master) $ git diff diff --git a/greeting b/greeting index 099e742..9dafe9b 100644 --- a/greeting +++ b/greeting @@ -1 +1 @@ -"" [DHello, all worlds!" +nothing а теперь попытаемся восстановить наш файл. Для этого в Git Bash следует написать: author@computer ~/Git/test (master) $ git reset --hard HEAD is now at 7509521 in my greeting: greetings to all worlds Однако это опасная операция, так мы теряем все наработки с последнего коммита!

Отправка и получение файлов из локального репозитория во внешний. Итак, для начала осталось рассомтреть последний вопрос, как именно отправлять файлы из нашего локального репозитория в удаленный и обратно принимать файлы. Для этого нам потребуются 2 команды pull и push. Команда pull получает последнюю версию из удаленного репозитаория: author@computer ~/Git/test (master) $ git pull Команда push загружает последние изменения в репозиторий: author@computer ~/Git/test (master) $ git push

4. Smart Git. Мы рассмотрели простейшие функции c помощью встроенных средств git. Давайте теперь

поробуем поставим более удобное ПО для работы с Git. Существует много интересных проектов для визуализации Git, вот некоторые из них:  

SmartGit — кроссплатформенный интерфейс для Git на Java. gitk — простая и быстрая программа, написана на Tcl/Tk, распространяется с самим Git.


     

QGit, интерфейс которого написан с использованием Qt, во многом схож с gitk, но несколько отличается набором возможностей. В настоящее время существуют реализации на Qt3 и Qt4. Giggle — вариант на Gtk+. gitg — ещё один интерфейс для gtk+/GNOME Git Extensions — кроссплатформенный вариант на .NET. TortoiseGit — интерфейс, реализованный как расширение для проводника Windows. Git-cola — кроссплатформенный интерфейс на Python. GitX — оболочка для Mac OS X с интерфейсом Cocoa, интерфейс схож с gitk.

Но я предлагаю расмотреть самый первый Smart Git. Программа кросс-платформенная, а следовательно более интересная, когда разработка многими программистами под разными ОС. Давайте установим Smart Git. Идем на сайт разработчика и архив с дистрибутивом. Запускаем установщик, а после и сам пакет. Выберем существующий репозиторий (Рисунок 5):

Рисунок 5

Теперь работать с файлами очень удобно, в любой момент можно сделать изменения и тогда фалы появятся в списке (Рисунок 6). Если мы хотим изменения сохранить в репозитории, то соответсвенно выделяем необходимые файлы и нажимаем Commit:

Хотим отменить изменения нажимаем Discard:


Рисунок 6

В результате в поле Output отображаются изменения произведенные с файлами.

0. Полезные ссылки. 1. Официальный сайт Git. 2. Официальные дистибутивы Git для различных ОС. 3. Страничка в Википедии про Git. 4. Официальный сайт разработчика Smart Git.


git documentation