Git — система управления версиями с распределенной архитектурой. В отличие от некогда популярных систем вроде CVS и Subversion (SVN), где полная история версий проекта доступна лишь в одном месте, в Git каждая рабочая копия кода сама по себе является репозиторием. Это позволяет всем разработчикам хранить историю изменений в полном объеме. Удобство и гибкость сделали Git стандартом для большинства современных IT-компаний.
Поэтому шпаргалка по Git, состоящая из основных команд - это то, что может вам пригодиться.
Первоначальная настройка:
показать настройки
git config --global -l
указать где хранить пароли (для windows)
git config --global credential.helper wincred
указать ваше имя для будущих коммитов
git config --global user.name "Username"
указать ваш email для будущих коммитов
git config --global user.email "me@gmail.com"
Создание репозиториев:
создать локальный репозиторий в текущей папке / инициировать репозиторий в текущем каталоге
git init
скачать удаленный репозиторий
git clone [url]
Работа с репозиторием:
показать состояние
git status -s
добавить все изменения в индекс
git add .
зафиксировать изменения с комментарием
git commit -m "comment"
Работа с историей:
переписать коммиты текущей ветки после коммитов в указанной ветке
git rebase [name]
git checkout -- .
откатить индексацию изменений, оставив их в рабочей директории (git add .
наоборот)
git reset -- .
удалить из текущей ветки все коммиты после указанного, оставив все изменения в рабочей директории
git reset HEAD
удалить из текущей ветки ВСЕ изменения после указанного коммита, затерев рабочую директорию
git reset --hard HEAD
удалить из рабочей директории untracked файлы
git clean -fd -- .
Работа с удаленными репозиториями:
показать привязанные удаленные репозитории
git remote -v
добавить указанный репозиторий под именем origin
git remote add origin [url]
скачать origin репозиторий, не применяя к локальным веткам
git fetch origin --prune
скачать origin репозиторий, применяя изменения к локальным веткам
git pull origin [name]
запушить ветку или тег
git push origin [name]
отвязать текущую локальную ветку от ветки в origin репозитории
git branch --unset-upstream
Работа с ветками:
показать на что указывает HEAD
cat .git/HEAD
показать список веток
git branch -a
создать новую ветку на основе текущей
git branch [new-name]
создать новую ветку на основе текущей и переключиться на нее
git branch -b [new-name]
удалить локальную ветку
git branch -d [name]
переключиться на ветку (фактически направить HEAD на указанную ветку)
git checkout [name]
смержить в текущую ветку коммиты из указанной ветки
git merge [name]
Теги:
показать список локальных тегов
git tag
пометить тегом текущий HEAD
git tag [name]
пометить тегом текущий HEAD вместе с комментарием
git tag [name] -m "comment"
удалить локальный тег
git tag -d [name]
Логи:
показать всю историю коммитов
git log --oneline
показать последние 10 коммитов
git log --oneline -10
показать историю коммитов для конкретного файла
git log --oneline --follow some-file
показать изменения в файле
git diff some-file
показать какой пользователь, когда и что изменял в файле
git blame some-file
Бонус:
создать псевдоним для часто используемых комманд
git config --global alias.<alias_name> <git_command>