Настройка gitconfig
Перед началом работы с git необходимо указать имя и email автора локальных коммитов:
git config --global user.name "Name Surname"
git config --global user.email you@yourdomain.example.com
Информация об авторах коммитов отображается в истории репозитория по команде:
git log
Настройки для подсветки вывода команд git:
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
Настройка редактора для правки комментариев коммитов:
git config --global core.editor "mcedit"
Указанные выше команды генерируют файл .gitconfig в домашнем каталоге пользователя. Этот файл можно править вручную, без использования команды git config.
Примерный вид файла .gitconfig
[user]
email = you@yourdomain.example.com
name = Name Surname
[receive]
denyCurrentBranch = ignore
[color]
branch = auto
diff = auto
interactive = auto
status = auto
[core]
eol = lf
editor = mcedit
Отличия от svn
В отличие от системы контроля версий svn в git локальный и удаленный репозитории могут изменяться независимо. Другими словами операция "коммит" и публикация изменений представляют собой два отдельных действия.
В git один локальный репозиторий может взаимодействовать с несколькими удаленными репозиториями. Пользователь может публиковать и получать из них коммиты.
В git все игнорируемые файлы и каталоги указываются в файле с именем .gitignore. Этот файл должен лежать в корневом каталоге проекта (там же где и каталог .git).
Основные команды
Создание нового локального репозитория:
git init
Клонирование удаленного репозитория
git clone <адрес репозитория>
Работать с удаленным репозиторием можно через протоколы ssh или http. В случае использования http удаленный репозиторий будет доступен только для чтения.
Создание коммита на основе всех текущих изменений (аналог svn commit):
git commit -a
Все текущие изменения можно добавить в последний коммит:
git commit --amend -a
Добавления нового файла в репозиторий:
git add <имя файла>
Удалить файл из репозитория можно просто удалив файл и сделав коммит всех текущих изменений. Либо специальной коммандой:
git rm <имя файла>
Для публикации локальных коммитов в удаленный репозиторий:
git push origin master
origin - имя удаленного репозитория (по-умолчания после клонирования репозиторий называется origin)
master - имя ветки в которую публикуются коммиты (главная ветка называется master, аналог trunk в svn)
Посмотреть удаленные репозитории с которыми взаимодействует локальный репозиторий можно командой:
git remote
Подробная информация об удаленном репозитории:
git remote show origin
Для получения коммитов из удаленного репозитория (аналог svn checkout):
git pull origin master
master - имя ветки удаленного репозитория из которой получаем коммиты
Для обновлении информации об удаленном репозитории надо выполнить (аналог svn update):
get fetch origin
Эта команда может потребоваться после публикации коммитов в удаленный репозиторий другими пользователями.
Посмотреть текущие незакоммиченные изменения в локальном репозитории:
git diff
Посмотреть незакоммиченную информацию по измененным, добавленным, удаленным файлам:
git status
Посмотреть отличие локального репозитория от удаленного (включая и коммиты и незакоммиченные изменения):
git diff origin/master
Откатить незакомиченные изменения в файле:
git checkout <имя файла>
Откатить все незакоммиченные изменения:
git checkout -f
Откатить состояние локального репозитория до определнного коммита:
git reset --hard 54f9ebec915f444297fd50812061ea2a4240b0fe
54f9ebec915f444297fd50812061ea2a4240b0fe - id коммита (выводится в истории командой git log)
Сформировать патчи по коммитам:
git format-patch -n 54f9ebec915f444297fd50812061ea2a4240b0fe
54f9ebec915f444297fd50812061ea2a4240b0fe - все коммиты до указанного будут в сгенерированных командой файлах
Приложить патч к локальному репозиторию можно коммандой:
git am -3 <имя файла с патчем>
Alias'ы для bash
Привожу используемые мной alias'ы для интерпретатора командной строки:
alias gitam='git am -3'
alias gitan='git annotate'
alias gitb='git branch'
alias gitbr='git branch -r'
alias gitc='git commit'
alias gitca='git commit -a'
alias gitcam='git commit --amend'
alias gitcf='git checkout -f'
alias gitch='git checkout'
alias gitchf='git checkout -f'
alias gitd='git diff'
alias gitdom='git diff origin/master'
alias gitdr='git diff --raw'
alias gitf='git fetch'
alias gitfo='git fetch origin'
alias gitfp='git format-patch "HEAD^"'
alias gitfpn='git format-patch -n '
alias gitl='git log'
alias gitlu='git log -u'
alias gitm='git merge'
alias gitp='git pull'
alias gitpom='git pull origin master'
alias gitpum='git push origin master'
alias gitpus='git push shpigor master'
alias gitr='git remote'
alias gitrh='git reset --hard'
alias gitrhh='git reset --hard "HEAD^"'
alias gitrs='git remote show'
alias gitrso='git remote show origin'
alias gitrv='git revert'
alias gits='git show'
alias gitst='git status'
alias gitstu='git status -uno'
Ссылки
1) Конфигурация git
http://www.arthurkoziel.com/2008/05/02/git-configuration/
2) Подробное руководство по git на русском
http://freesource.info/wiki/RuslanHihin/gitusermanual?v=b7s&
3) Подробное руководство по git
http://schacon.github.com/git/user-manual.html
Перед началом работы с git необходимо указать имя и email автора локальных коммитов:
git config --global user.name "Name Surname"
git config --global user.email you@yourdomain.example.com
Информация об авторах коммитов отображается в истории репозитория по команде:
git log
Настройки для подсветки вывода команд git:
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
Настройка редактора для правки комментариев коммитов:
git config --global core.editor "mcedit"
Указанные выше команды генерируют файл .gitconfig в домашнем каталоге пользователя. Этот файл можно править вручную, без использования команды git config.
Примерный вид файла .gitconfig
[user]
email = you@yourdomain.example.com
name = Name Surname
[receive]
denyCurrentBranch = ignore
[color]
branch = auto
diff = auto
interactive = auto
status = auto
[core]
eol = lf
editor = mcedit
Отличия от svn
В отличие от системы контроля версий svn в git локальный и удаленный репозитории могут изменяться независимо. Другими словами операция "коммит" и публикация изменений представляют собой два отдельных действия.
В git один локальный репозиторий может взаимодействовать с несколькими удаленными репозиториями. Пользователь может публиковать и получать из них коммиты.
В git все игнорируемые файлы и каталоги указываются в файле с именем .gitignore. Этот файл должен лежать в корневом каталоге проекта (там же где и каталог .git).
Основные команды
Создание нового локального репозитория:
git init
Клонирование удаленного репозитория
git clone <адрес репозитория>
Работать с удаленным репозиторием можно через протоколы ssh или http. В случае использования http удаленный репозиторий будет доступен только для чтения.
Создание коммита на основе всех текущих изменений (аналог svn commit):
git commit -a
Все текущие изменения можно добавить в последний коммит:
git commit --amend -a
Добавления нового файла в репозиторий:
git add <имя файла>
Удалить файл из репозитория можно просто удалив файл и сделав коммит всех текущих изменений. Либо специальной коммандой:
git rm <имя файла>
Для публикации локальных коммитов в удаленный репозиторий:
git push origin master
origin - имя удаленного репозитория (по-умолчания после клонирования репозиторий называется origin)
master - имя ветки в которую публикуются коммиты (главная ветка называется master, аналог trunk в svn)
Посмотреть удаленные репозитории с которыми взаимодействует локальный репозиторий можно командой:
git remote
Подробная информация об удаленном репозитории:
git remote show origin
Для получения коммитов из удаленного репозитория (аналог svn checkout):
git pull origin master
master - имя ветки удаленного репозитория из которой получаем коммиты
Для обновлении информации об удаленном репозитории надо выполнить (аналог svn update):
get fetch origin
Эта команда может потребоваться после публикации коммитов в удаленный репозиторий другими пользователями.
Посмотреть текущие незакоммиченные изменения в локальном репозитории:
git diff
Посмотреть незакоммиченную информацию по измененным, добавленным, удаленным файлам:
git status
Посмотреть отличие локального репозитория от удаленного (включая и коммиты и незакоммиченные изменения):
git diff origin/master
Откатить незакомиченные изменения в файле:
git checkout <имя файла>
Откатить все незакоммиченные изменения:
git checkout -f
Откатить состояние локального репозитория до определнного коммита:
git reset --hard 54f9ebec915f444297fd50812061ea2a4240b0fe
54f9ebec915f444297fd50812061ea2a4240b0fe - id коммита (выводится в истории командой git log)
Сформировать патчи по коммитам:
git format-patch -n 54f9ebec915f444297fd50812061ea2a4240b0fe
54f9ebec915f444297fd50812061ea2a4240b0fe - все коммиты до указанного будут в сгенерированных командой файлах
Приложить патч к локальному репозиторию можно коммандой:
git am -3 <имя файла с патчем>
Alias'ы для bash
Привожу используемые мной alias'ы для интерпретатора командной строки:
alias gitam='git am -3'
alias gitan='git annotate'
alias gitb='git branch'
alias gitbr='git branch -r'
alias gitc='git commit'
alias gitca='git commit -a'
alias gitcam='git commit --amend'
alias gitcf='git checkout -f'
alias gitch='git checkout'
alias gitchf='git checkout -f'
alias gitd='git diff'
alias gitdom='git diff origin/master'
alias gitdr='git diff --raw'
alias gitf='git fetch'
alias gitfo='git fetch origin'
alias gitfp='git format-patch "HEAD^"'
alias gitfpn='git format-patch -n '
alias gitl='git log'
alias gitlu='git log -u'
alias gitm='git merge'
alias gitp='git pull'
alias gitpom='git pull origin master'
alias gitpum='git push origin master'
alias gitpus='git push shpigor master'
alias gitr='git remote'
alias gitrh='git reset --hard'
alias gitrhh='git reset --hard "HEAD^"'
alias gitrs='git remote show'
alias gitrso='git remote show origin'
alias gitrv='git revert'
alias gits='git show'
alias gitst='git status'
alias gitstu='git status -uno'
Ссылки
1) Конфигурация git
http://www.arthurkoziel.com/2008/05/02/git-configuration/
2) Подробное руководство по git на русском
http://freesource.info/wiki/RuslanHihin/gitusermanual?v=b7s&
3) Подробное руководство по git
http://schacon.github.com/git/user-manual.html
Комментариев нет:
Отправить комментарий