# Основные моменты для начала работы с Git ## Установка Скачивать отсюда и далее следовать указаниям `http://git-scm.com/download/linux` где установлен: `> wich git` версия `> git --version` ## Настройка Расположение конфиг.файлов: * system: `/etc/gitconfig` * user: `~/.gitconfig` * project: `my_project/.git/config` Команды настройки: ``` > git config --system // <- настройка системных конфигов > git config --global // <- пользовательских конфигов > git config // <- конфигов проекта ``` Основные настройки: ``` > git config --global user.name "Имя_Пользователя" > git config --global user.email "example@mail.com" ``` Просмотр настроек: `> git config --list` - список установленных настроек `> git config user.name` - вернет настройки для имени пользователя ещё полезные настройки: `> git config --global core.editor "редактор"` - настройка редактора по-умолчанию `> git config --global color.ui true` - настройка вывода командной строки git в цвете ## Настройка автозаполнения в git: ### Скачиваем: ``` > cd ~ > curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash ``` ### Переименовываем скаченный файл: ``` > mv ~/git-completion.bash ~/.git-completion.bash ``` ### Добавим код в файл: в один из следующих файлов `~/.bash_profile` или `~/.bashrc` (лучше в первый) добавить такой код: ``` if [ -f ~/.git-completion.bash ] then source ~/.git-completion.bash fi ``` ## Инициализация git для проекта 1. Переходим в корневую папку проекта 2. Выполняем команду: `> git init` ## Добавление изменений в проект (commit) ``` > git add . > git commit -m "комментарий_к_коммиту" ``` Советы по комментариям к коммитам: * меньше 50 символов * меньше 72 строк * писать в настоящем времени (не в прошедшем) * использовать звездочки-булеты для списков (или дефисы) * можно добавлять "короткие заголовки" в начале сообщения, типа: * "[css, js]" - указывает с чем работали * "bugfix" - указывает на исправление бага * "#38312" - указывает ярлык поддерживающего запроса * использовать чёткие описательные сообщения ## Просмотр логов коммита `> git log` - выводит информацию об изменениях в виде: ``` commit id_commit`a author имя автора комментария, е-майл автора комментария date дата когда был сделан коммит сообщение комментария ``` опции логов: `> git log -n 5 ` - устанавливает число показываемых коммитов (покажет 5 коммитов) `> git log --sinee=2020-05-30` - покажет логи начиная с указанной даты `> git log --until=2020-05-30` - покажет логи до указанной даты `> git log --until=2020-07-01 --sinee=2020-05-30` - покажет логи с 30.05.20 по 01.07.20 `> git log --author="имя"` - покажет комменты автора с соответствующим именем `> git log --grep="foobar"` - покажет логи в тексте которых есть слово foobar ## Добавление файлов в репозиторий сначала: `> git status` - показывает различие между рабочей директорией, буфером и репозиторием затем: `> git add имя_файла` - добавление файла в отслеживаемые git-ом или `> git add .` - добавление всех файлов на отслеживание на предмет изменен следующий шаг: `> git commit -m "комментарий_к_коммиту"` - создаем коммит и наконец - передача файлов в репозиторий `> git push` - отошлет файлы подготовленные в коммите в репозиторий ## Просмотр изменений сделанных в файле `> git diff` - сравнивает файлы в репозитории и в рабочем каталоге и показывает изменения: что было изменено и в каких строках файла `> git diff имя_файла` - покажет изменения для конкретного файла ### Просмотр изменений находящихся в буфере `> git diff --staget` - сравнивает буфер и репозиторий ## Удаление файлов и отслеживание удалений при помощи git ### Вариант 1 * шаг 1 - удалить файл из рабочей директории через "корзину" * шаг 2 - выполнить: `> git rm имя_удаляемого_файла` * шаг 3 - выполнить: `> git commit -m "Удаление файла имя_удаляемого_файла"` ### Вариант 2 * шаг 1 - выполнить: `> git rm имя_удаляемого_файла` * шаг 2 - выполнить: `> git commit -m "Удаление файла имя_удаляемого_файла"`