Основные операции с 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. Источник клонирования.
Обсуждение