13 февр. 2011 г.

Изучаем GIT – Часть 1: Установка GIT на Debian(Перевод)


Изучаем GIT – Часть 1: Установка GIT на Debian




Внимание, это условный перевод статьи: http://linux.koolsolutions.com/2009/08/07/learn-git-series-part-1-installing-git-on-debian/
Если вы заметили ошибки перевода, прошу писать об этом в комментариях и я поправлю текст.



Приветствую в Части 1 «Изучаем GIT»
Цель: Если вы продвинутый Linux пользователь, наверняка уже слышали про GIT — распределенную систему версий исходных кодов написанную Линусом Торвальдсом для использования в разработке ядра Linux. Как бы там ни было, а GIT стал очень популярным в наши дни для многих больших проектов, таких как GNOME, Ruby on Rails, прочих начавших использовать GIT. Один из друзей в Expedia рассказал мне как они так же начали использовать GIT в их новых проектах. Я тоже решил начать изучать/использовать GIT. Так почему бы не начать изучать GIT вместе? Я буду регулярно писать про мое изучение GIT до тех пор пока я достаточно не изучу его.



Предположение: Хотя этот шаг должен быть практически идентичным для всех дистрибутивов Linux, Я буду использовать Debian Lenny 5.0 (x86). Начнем...


Шаг 1: Установка GIT
Сперва установим основной пакет и тогда увидим какие еще другие нужны пакеты GIT:
apt-get update
apt-get install git-core
Заметка: Так же есть другой пакет называемый «git», но нам НЕ НУЖЕН этот пакет. По этому не делайте:
apt-get install git.


Шаг 2: Настройка имени и email
Для каждого коммита сделанного нами используя git, имя и email должны быть указаны той персоной которая коммитит изменения кода для идентификации. По этому наша первая работа после установки задать имя и email следующими командами:
kushalk@debian-tablet:~$ git config --global user.name "Kushal Koolwal"
kushalk@debian-tablet:~$ git config --global user.email kushalk@koolwal.net
Вы можете проверить зарегистрированные или нет имя и email следующей командой:
kushalk@debian-tablet:~$ git config -l
user.name=Kushal Koolwal
user.email=kushalk@koolwal.net

Шаг 3: Подготовка директории проекта
Пришло время создать ваш первый GIT репозиторий. Это будет либо уже существующей директорией проекта, либо новосозданной директорией. Для простоты я создам новую директорию проекта:
kushalk@debian-tablet:~$ mkdir -p projects/hello
Теперь директория “hello”станет нашим GIT репозитарием в котором мы будем хранить исходные коды.
kushalk@debian-tablet:~$ cd projects/hello
Теперь давайте напишем простую программу “Hello Word” на C.
kushalk@debian-tablet:~$ nano hello_word.c
Код:
#include
int main (void)
{
printf ("Hello World!\n");
}
Не так быстро, мы еще не сделали нашу директорию «hello» GIT репозиторием. Так до сих пор мы имеем его так же, как любой другой нормальный каталог, который имеет простую программу на С в ней.

Шаг 4: Создание вашего первого GIT репозитария
Сейчас просто задавши следующую команду инициализируем директорию “hello”как GIT репозитарий:
kushalk@debian-tablet:~/projects/hello$ git init
Вывод:
Initialized empty Git repository in /home/kushalk/projects/hello/.git/
Выведенное сообщение означает что ваш GIT репозиторий успешно инициализирован и готов дать все преимущества что может предложить GIT. Обратите внимание что команда создала “.git” директорию внутри вашей директории в которую сохраняется все мета-информация об проекте.
kushalk@debian-tablet:~/projects/hello$ ls -al .git/
Вывод:
total 40
drwxr-xr-x 7 kushalk kushalk 4096 2009-08-07 01:46 .
drwxr-xr-x 3 kushalk kushalk 4096 2009-08-07 01:48 ..o
drwxr-xr-x 2 kushalk kushalk 4096 2009-08-07 01:46 branches
-rw-r--r-- 1 kushalk kushalk   92 2009-08-07 01:46 config
-rw-r--r-- 1 kushalk kushalk   73 2009-08-07 01:46 description
-rw-r--r-- 1 kushalk kushalk   23 2009-08-07 01:46 HEAD
drwxr-xr-x 2 kushalk kushalk 4096 2009-08-07 01:46 hooks
drwxr-xr-x 2 kushalk kushalk 4096 2009-08-07 01:46 info
drwxr-xr-x 4 kushalk kushalk 4096 2009-08-07 01:46 objects
drwxr-xr-x 4 kushalk kushalk 4096 2009-08-07 01:46 refs
kushalk@debian-tablet:~/projects/hello$
Сейчас можете не беспокоиться об этих файлах присутствующих там. По мере изучения системы мы начнем понимать назначение каждого из них.
Теперь дадим значимое описание вашему проекту:
kushalk@debian-tablet:~/projects/hello$ nano .git/description
и добавим следующую строку:
My first GIT project - Hello World
после удаляем строку по умолчанию:
Unnamed repository; edit this file 'description' to name the repository.
Сохраняем и закрываем файл.
Вот как быстро и успешно вы создали базовый GIT репозиторий для вашего проекта “hello”

Шаг 5: Добавляем файл(ы) в ваш проект
Сейчас GIT не распознает “hello_world.c” (созданный на Шаге 3) как часть. Нам нужно добавить файлы чтобы указать GIT начать отслеживать за их изменениями:
kushalk@debian-tablet:~/projects/hello$ git add hello_world.c
Теперь следующая команда:
git status
Вывод:
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached ..." to unstage)
#
#    new file:   hello_world.c
#
Что сообщает о том что новый файл “hello_world.c” был добавлен но не закоммичен.

Шаг 6: Делаем наш первый коммит
А теперь сделаем наш первый коммит:
kushalk@debian-tablet:~/projects/hello$ git commit -a -m "Initial Commit"
Вывод:
[master (root-commit) 7e9459a] Initial Commit
1 files changed, 8 insertions(+), 0 deletions(-)
create mode 100644 hello_world.c
Вывод подтверждает что ваш коммит был успешным. Опция “-m” подходит для коротких сообщений что вы хотели бы приложить к коммиту. Обратите внимание что нужно задать какой тип сообщений будет для каждого коммита. Не пытайтесь пропустить часть сообщений. Кроме того, наличие значимых однострочных сообщений для коммита всегда полезно и вы можете обратиться к ним позже для просмотра внесенных изменений.
Поздравляю с первым сделанным коммитом!
Теперь если введете команду:
kushalk@debian-tablet:~/projects/hello$ git status
Вывод:
# On branch master
nothing to commit (working directory clean)
сообщает вам что более нечего коммитить вероятно ссылаясь на текущую дату.

Шаг 7: Проверка логов коммита
Так же вы можете смотреть ваши логи коммитов(историю) следующей командой:
kushalk@debian-tablet:~/projects/hello$ git log
Вывод:
commit 7e9459a2cb40469fe23116ef025354b45b3a45ce
Author: Kushal Koolwal
Date:   Fri Aug 7 01:57:10 2009 -0700
Initial Commit

Шаг 8: Добавляем еще один файл и коммит
Теперь посмотрим как вы можете добавить один или несколько файлов в проект и закомитить их.
kushalk@debian-tablet:~/projects/hello$ nano library.h
Код:
#ifndef DEFINITIONS_H
#define DEFINITIONS_H 1
/* Implement a number using a linked list.  */
struct LinkedListNumber
{
struct LinkedListNumber*
one_less_;
};
#endif /* DEFINITIONS_H */
Сохраняем файл и выходим.
Теперь редактируем наш hello_world.c для включения в репозиторий так же library.h:
Код:
#include
#include "library.h"
int main (void)
{
printf ("Hello World!\n");
}
Сохраняем и выходим.
Теперь если введете команду:
kushalk@debian-tablet:~/projects/hello$ git status
Вывод:
# On branch master
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
#    modified:   hello_world.c
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#    library.h
no changes added to commit (use "git add" and/or "git commit -a")
соообщает о том какие файлы были изменены, так как они добавлены (hello_world.c) и которые были созданы, но не добавлены еще (library.h)
Теперь добавим к репозиторию файл “library.h”:
kushalk@debian-tablet:~/projects/hello$ git add library.h
И теперь делаем наш коммит:
kushalk@debian-tablet:~/projects/hello$ git commit -a -m "library.h file added"
Вывод:
[master d0e0654] library.h file added
2 files changed, 14 insertions(+), 3 deletions(-)
create mode 100644 library.h
Теперь проверьте статус вашего репозитория и логи коммитов:
kushalk@debian-tablet:~/projects/hello$ git status
Вывод:
# On branch master
nothing to commit (working directory clean)
И
kushalk@debian-tablet:~/projects/hello$ git log
Вывод:
commit d0e0654468e2e9f343369cda40e7760fc94ded9e
Author: Kushal Koolwal
Date:   Fri Aug 7 02:17:37 2009 -0700
library.h file added
commit 7e9459a2cb40469fe23116ef025354b45b3a45ce
Author: Kushal Koolwal
Date:   Fri Aug 7 01:57:10 2009 -0700
Initial Commit
Поздравляю еще раз если у вас все получилось так быстро. Вы только что создали ваш первый GIT репозиторий и так же два коммита таких как PROS.(прим. Переводчика: WTF PROS?)
Запомните, если вы чувствуете неуверенность прямо сейчас, не беспокойтесь. Это вполне нормально. С опытом система станет чувствоваться более удобной при работе с GIT командами. Поверьте мне я только, я сам только начал понимать что мы изучали в этой статье.
Удачного GIT-тинга


2 комментария:

  1. уточнение к переводу (wtf pros?).
    like pros = like professionals (как профессионалы)

    ОтветитьУдалить
  2. капец, все глаза сломать можно :-(

    ОтветитьУдалить