Это старая версия документа.
Шпаргалка по git
Подготовка
Авторизация идёт по ключу. Ключи брать у Asmodeus’a.
Прописать путь к ключу в /etc/ssh/ssh_config
Host abills.net.ua IdentityFile **Путь к ключу**
Указываем свои даные
# git config --global user.name *Имя разработчика* # git config --global user.mail *e-mail разработчика*
Клонирование репозитория
# cd /usr # git clone git@abills.net.ua:abills.git
*Если просит пароль для git, значит не подхватило ключ.
Создание ветки
Для примера, рассмотрим правку модуля Msgs. Переходим в dev:
#git checkout dev
Стягиваем обновления из dev
# git pull origin dev
Отделяем ветку
# git branch Msgs
Переходим в новую ветку
# git checkout Msgs
Можно одной командой
# git checkout -b Msgs
Рабочий процесс
Создаём новую ветку для задачи
В новой ветке:
Повторить нужное количество раз:
<эти действия>
Редактируем до достижения результата.
# edit some files\\ Фиксируем изменения:\\ # git commit -a -m ‘(описание изменений)’\\
</эти действия>
Заливаем в основной репозиторий в ветку Msgs
# git push origin Msgs
Залить готовые изменения (сделанные до подключения к git):
Перемещаем свою папку abills
Клонируем репозиторий
Отделяем ветку
Вносим свои изменения из копии
Фиксируем.
Внештатные ситуации:
Conflict
Если несколько человек редактировали один файл, может возникнуть конфликт слияния.
После git pull и сообщения о возникновения конфликта
# vimdiff *путь к файлу*
ищем »»>HEAD
…..
===========
…..
««««<Msgs
Оставляем нужную часть, сохраняем
добавляем в index
# git add *путь к файлу*
Фиксируем,
Повторяем git pull
Отмена коммита
возврат к коммиту:
# git revert (hash-код комита)
возврат на 5 коммитов назад:
# git reset HEAD~5
Посмотреть историю коммитов для текущей ветки
# git log
Посмотреть, кто что правил в файле
# git blame <путь/к/файлу/имя файла>
Если во время работы над одной веткой, нужно перейти в другую, без фиксации изменений
“Прячем” изменения:
# git stash
Переходим в другую ветку:
# git checkout branch2
Редактируем:
# edit some files
Фиксируем:
# git commit -a -m ‘message’
Возвращаемся в первую ветку:
# git checkout branch1
Применяем спрятанные изменения:
# git stash pop
Git log варианты вывода
git log --graph --pretty=format:"%C(yellow)%h%Creset%C(blue)%d%Creset %C(white bold)%s%Creset %C(white dim)(by %an %ar)%Creset" --all
Алиасы
Вставить в ~/.gitconfig в секцию [alias]
[alias] st=status pl = pull ph = push b = branch ch = checkout df = diff hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short type = cat-file -t dump = cat-file -p