[[Основные операции с git]]

Основные операции с git

GIT - удобная быстрая децентрализованная система совместной разработки (репозитория).

Создание репозитория (инициализация)

Создайте папку проекта или войдите в существующую папку с файлами проекта и выполните инициализацию репозитория:

git init

Будет создана начальная структура репозитория в папке .git

Добавление существующих файлов

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

Команда:

git add .

добавит все файлы (рекурсивно) в репозиторий.

Клонирование

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

mkdir ~/git_project
cd ~/git_project

Клонирование репозитория:

git clone ssh://server.example.com/path/to/Project ./

Для дальнейшего внесения изменений, нужно определить user.name и user.email

git config --global user.name "LeXa"
git config --global user.email "mail@mail.ru"

Внесение изменений

Мелкие поправки вносятся простым коммитом с последующим закидыванием изменений на сервер.

git add ...
git status
git commit -m "Commit message"

Первой команде в качестве аргументов следует указать имена добавляемых файлов. Следует заметить, что для git’а изменённый файл является новым объектом. Поэтому для того, чтобы обновить файл в репозитории, также как и добавить новый файл, следует выполнить для него git add перед коммитом.

git status наглядно покажет состояние файлов вашего дерева (неизвестные системе файлы, изменённые, не изменённые, находящиеся в конфликте и т.д.)

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

git branch new-feature
git checkout new-feature

…сделать что-нибудь…

git add ...
git commit -m "Commit message"

Команда git branch покажет, что у нас две ветви: master и new-feature. Командой checkout можно переключаться между ними (и делать затем коммиты в каждую, не затрагивая другую). Когда вы закончите разрабатывать новую возможность, настанет время примешать изменения в основную ветвь, master.

git checkout master
git merge new-feature

Отправка изменений и приём изменений основной ветки

Итак, у нас в ветви master имеются изменения, которые неплохо бы отдать своему коллеге (ну и выложить на сервер с целью последующего deploy’а новой версии).

git push origin

Чтобы получить изменения, следует сделать:

git pull origin

В некоторых случаях изменения с сервера невозможно автоматически добавить в вашу ветвь master, тогда вместо pull’a следует использовать merge:

git merge origin/master

…или, в плохом случае…

git merge -s resolve origin/master
Откуда взялся origin? Это имя удалённого репозитория, автоматически добавленное командой git clone. Источник клонирования.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
109 -15 = ?
 
howto/git.txt · Последние изменения: 2013/04/09 12:06 — lexa
Gentoo Linux Driven by DokuWiki