Вспомогательная документация по системе контроля версий
Основные команды Linux
pwd - узнать рабочую директорию
ls - показать файлы в каталоге
cd /dir/ - переход в директорию
mkdir/rmdir - создает/удаляет новый каталог
touch - создает файл
rm -r /dir/ - удалить директорию (после индексированого изменения в GIT, иначе возникнет ошибка)
rm -f file - удалить файл без индекса
cp file.txt /dir/ - копировать файл
mv - перемещение/переименование файла
cat - отобразить содержимое файла
nano/vi/emacs - открыть файл в редакторе
sudo - выполнить команду с правами администратора
zip/unzip - архивировать/разархивировать файл
GIT: Файл .gitignore
Файл требуется для скрытия файлов и папок от системы контроля версий GIT.
- Каждая строка - отдельный шаблон
- Пустые строки игнорируются
- Строки начинающиеся с # являются комментариями
- Символ слеша "/" в начале строки указывает на текущую папку (где лежит .gitignore)
- Звёздочка(*) заменяет любое количество символов
- Две звёздочки(**) используются для указания всех подпапок.
- Восклицательный знак(!) в начале строки инвертирует шаблон (используется для исключений)
- Для экранирования спецсимволов используется обратный слэш "\". Для игнорирования всей директории, правило должно оканчиваться на слэш(/), в противном случае правило считается именем файла.
Пример:
/output
.java
README.txt
GIT: Конфигурации
git config --global user.name "name" — Установить имя
git config --global user.email "email address" — Установить email
git config --global color.ui auto — Включить подсветку командной строки
git config --global push.default current — Обновить удаленную ветку с таким же именем, что и локальная, при пуше изменений
git config --global core.editor editor — Установка редактора
GIT: Основные команды
git init - Инициализация/Включение системы контроля версий в репозитории
git add - Добавляет содержимое рабочей директории в индекс (staging area) для последующего коммита
git status - Отображает состояние файлов в рабочей директории и индексе
git diff - Разнциа между двумя GIT деревьями (например: между рабочей директорией и индексом)
git commit - Делает слепок файла который заиндексирован в базе данных GIT
git rm - Используется в Git для удаления файлов из индекса и рабочей директории
git clean - Удаление "мусора" в директории (например: состояние сборки проекта или конфликтные слияния)
GIT: Работа с ветками и слиянием
git branch - Менеджер GIT, перечисляет ветки, создает новые, удаляет и переименовывать их
git branch -a - Просмотр веток, в том числе удаленных
git branch -d/-D - Удалить ветку/Удалить ветку если она не входит в основную
git branch file hash - Восстановить удаленную ветку (по хэшу коммита)
git branch file 'HEAD@{number}' - Восстановить удаленную ветку из reflog через ее номер
git branch file 'HEAD@{"date"}' - Восстановить удаленную ветку из reflog через ее дату
git checkout file - Откат последних изменений в файле
git checkout name branch - Перейти на ветку name
git checkout @{-N} - (Где N - отрицательное число) Проверка прежней проверенной ветви, чем текущая проверенная ветвь (Например {-2} - вернуться на два шага ветви назад)
git revert HEAD --no-edit - откат на предыдущий коммит без открытия в редакторе
git merge - Слияние веток (одной или нескольких) в текущую
git merge --no-ff - GIT cоздает новый объект коммита при слиянии, позволяет просмотреть какая из групп коммита отвечает за определенную функциональность в проекте
git reset --merge - Отменить слияние
git pull - Связка команд git fetch и git merge, т.е. Вначале забирает изменения из указанного удалённого репозитория, а затем сливает их с текущей веткой
GIT: Stash
git stash - Временное сохранение всех незакоммиченных изменений для очистки рабочей директории без необходимости коммитить незавершённую работу в новую ветку
git stash pop — Откат до последних файлов во временном хранилище
git stash list — Список всех сохраненных изменений во временном хранилище
git stash drop — Удалить последние файлы, положенные во временное хранилище
git stash apply - Отобразить спрятанные изменения
GIT: Работа с удаленным репозиторием
git remote - Отобразить информацию об именах удаленных репозиториев
git remote -v — Отобразить детальный список доступных удаленных репозиториев
git remote add [remote][url] — добавить новый удаленный репозиторий
GIT: Совместное конфигурирование проекта
git tag - Установка метки на какой либо момент в проекте
git fetch - Связывается с удалённым репозиторием и забирает из него все изменения сохраняя локально
git push origin master - Отправить изменения в удаленную ветку master
git push --force - Произвести пуш изменений, даже если есть конфликты
git push [remote] [branch] — Запушить ветку в указанный репозиторий/удаленную ветку
git push [bookmark] :[branch] — Удалить ветку на удаленном репозитории
git push -u origin master — Сделать удаленную ветку отслижваемоей (если таковой не является)
GIT: Просмотр и сравнение
git log - Просмотр истории
git log --oneline - Отображение истории в одной строке
git log --all - Отобразить всю историю
git reflog - Отобразить полный журнал логирования (Абсолютно всех коммитов, в том числе на которых была сделана ссылка на репозиторий)
git reflog name branch - Просмотреть историю в name branch
git reflog --date=iso - Отобразить даты изменений
git log --no-merges master.. — Просмотр логов только для текущей ветки
git show [commit] — показать метадату и изменения в заданном коммите.
git show [branch]:[file] — посмотреть на файл в другой ветке, не переключаясь на неё.
git show - Отображение информации об объекте (метка, коммит и тд)
git describe - Показывает информацию о самом последнем тэге, доступном из данного коммита
GIT: Отладка
git bisect - Поиск коммита с первым проявлением бага с помощью алгоритма бинарного поиска
git blame - Вывод SHA-1 коммита для определения последнего разработчика который работал с данным коммитом
GIT: Администрирование
git gc - Запускает сборщик мусора в репозитории, который удаляет ненужные файлы из хранилища объектов и эффективно упаковывает оставшиеся файлы
git fsck - Проверка внутренней БД на наличие ошибок и несоответствий
GIT: Работа с архивами
git archive - Команда git archive используется для упаковки в архив указанных коммитов или всего репозитория.
Пример: git archive --format zip --output filename.zip my_branch
Разархивирование: unzip filename.zip