В данной заметке будут собраны основные команды такой популярной распределенной системы контроля версий, как Git.
Настройка
- Указать глобальный username:
$ git config --global user.name "John Doe"
- Указать глобальный user email:
$ git config --global user.email [email protected]
- Указать редактор, который будет использоваться, когда нужно ввести сообщение в Git:
$ git config --global core.editor emacs
- Указать утилиту сравнения, которая будет использоваться для разрешения конфликтов слияния:
$ git config --global merge.tool vimdiff
- Просмотреть используемые настройки:
$ git config --list
Работа с репозиторием
- Инициализировать репозиторий:
$ git init
- Показать статус репозитория:
$ git status
- Коммитит с указанием комментария:
$ git commit -m 'some entry script fixes'
- Коммитит с указанием комментария и автоматической индексацией:
$git commit -a -m 'some entry script fixes'
- Добавить файл в индекс:
$ git add index.php
- Посмотреть изменения между рабочим каталогом и индексом:
$ git diff
- Посмотреть изменения между последним коммитом и индексом:
$ git diff --cached
- Удалить файл из индекса и из рабочего каталога:
$ git rm readme.txt
- Удалить файл из индекса, оставив его при этом в рабочем каталоге:
$ git rm --cached readme.txt
- Исключить файл (который находится в индексе, но еще не за коммитен) из индексации:
$ git reset HEAD readme.txt
- Просмотр истории коммитов:
$ git log
- Просмотр истории коммитов в GUI:
$ gitk
Работа с удаленным сервером
- Просмотреть какие удалённые серверы уже настроены, параметр -v отображает так же url сервера:
$ git remote -v
- Добавить новый удалённый репозиторий под именем pb:
$ git remote add pb git://github.com/paulboone/ticgit.git
- Посмотреть список коммитов репозитория pb ветки master, которые были выполнены после последнего pull-а:
git log pb/master
- Извлечь (fetch) всю информацию, которая есть в репозитории pb:
$ git fetch pb
- Слить (merge) информацию, которую получили через fetch с рабочим каталогом:
$ git merge pb/master
- Отправить (push) код в ветку master удаленного репозитория pb:
$ git push pb master
- Переименовать удаленный репозиторий из pb на paul:
$ git remote rename pb paul
- Удалить удаленный репозиторий paul:
$ git remote rm paul
Работа с метками
- Просмотр имеющихся меток:
$ git tag
- Создание аннотированной метки:
$ git tag -a v1.4 -m 'my version 1.4'
- Создание легковесной метки:
$ git tag v1.4
- Просмотр данных метки:
$ git show v1.4
- Создание метки для какого-либо существующего коммита (9fceb02 – контрольная сумма коммита, или ее часть):
$ git tag -a v1.2 9fceb02
- Отправить метку на удалённый сервер:
$ git push pb v1.5
Работа с ветками
- Отобразить список веток проекта:
$ git branch
- Отобразить список веток с последними коммитами:
$ git branch -v
- Создать новую ветку с названием "iss53":
$ git branch iss53
- Переключиться на ветку iss53:
$ git checkout iss53
- Создать ветку с названием "iss53" и переключиться на нее:
$ git checkout -b iss53
- Создать ветку с названием "articles" на основе ветки "articles" из удаленного сервера pb и переключиться на нее:
git checkout -b articles pb/articles
- Слить текущую ветку с веткой hotfix:
$ git merge hotfix
- Переименовать ветку "articles" в "content":
$ git branch -m articles content
- Удалить ветку hotfix:
$ git branch -d hotfix
- Удалить ветку hotfix на удаленном сервере pb:
$ git push pb :hotfix
- Запустить графический инструмент для отображения конфликтных ситуаций:
$ git mergetool
- Посмотреть список веток, которые уже слиты с текущей:
$ git branch --merged
- Посмотреть список веток, которые содержат наработки, но еще не слиты с текущей:
$ git branch --no-merged