Git
Автор: https://github.com/krdprog
Установка:
sudo apt-get install git
Глобальные настройки:
git config --global user.name "FooBar"
git config --global user.email "foo@bar.ru"
или в файле: ~/.gitconfig
Инициализация проекта:
mkdir git-project && cd git-project
git init
Добавить файл на коммит кандидат - индексация файлов:
git add foo.txt
Дефолтный UI редактор:
gitk
Коммит:
git commit
или
git commit -m "First Commit"
В gitk –> Shift + F5 - посмотреть изменения
вносим изменения в файл, и чтобы его опять закоммитить надо сначала сделать
git add foo.txt
(добавление файла в индекс)
Статус - есть ли что коммитить, что поменялось
git status
Откат к предыдущей версии файла
git checkout -- foo.txt
Ещё про индексацию файлов (добавить все файлы в индексацию):
git add *
- все файлы
или
git add .
- файлы только в текущем каталоге
Копия репозитория с github:
git clone https://foo.bar
работаем с файлами…
git status
git add foo.txt
git commit -m "Comment"
Загрузка на github:
git push
Получить изменения из github
git pull
Индексировать все файлы можно ещё так:
git add -A
Отменить все изменения до commit, но уже с add:
git reset --hard HEAD
Отменить добавление к индексации файла до коммита
git reset HEAD foo.txt
Удалить файлы и каталоги вне индекса:
git clean -n
- посмотреть, что будет удалено
git clean -nd
git clean -fd
Команда выше не удаляет файлы которые перечислены в .gitignore.
Просмотреть, а затем удалить ВСЕ непроиндексированные файлы и папки, включая игнорируемы Git-ом:
git clean -ndx
git clean -fdx
История репозитория:
git log
git log --pretty=oneline
- покажет историю в 1 строку
git log --pretty=oneline -max-count=3
git log --pretty=oneline --all
git log --pretty=oneline --author="krdprog"
git log --pretty=format:"%h - %s : %ad [%an]" --date=short
- короткая запись hash, комментария, даты и автора
git log --pretty=format:"%h %ad | %s" --date=short
сделал себе алиас gitl
Пример ветки дерева, снапшоты:
2d67e51 2018-04-04 night edition
a813a4d 2018-04-04 Two commit
58cbea1 2018-04-04 First commit
Возврат к предыдущему коммиту:
git checkout a813a4d
где a813a4d - это хеш нужного коммита
таким образом ходим по истории коммитов
Переключение на ветку master:
git checkout master