Cheat Sheet Git

12 Июля 2021 13:18

Команда Описание
Пользователи и учетные записи
git config --global --list Посмотреть информацию по текущему пользователю git
git config --global user.name Посмотреть имя пользователя
git config --global user.name "Name" Сменить пользователя к коммитам на желаемое
Фиксация изменений
git update-index --skip-worktree file_to_ignore.php Установить флаг игнорирования в отслеживаемом файле
git update-index --no-skip-worktree file_to_track.php Убрать флаг игнорирования для файла
git push origin master Залить изменения в репозиторий в ветку
git reset --hard HEAD Отменить изменения во всейх файлах и вернуться в изначальное состояние ревизии (на момент последнего коммита).
Полезно, когда было внесено много ненужных изменений, например, добавил модуль в проект или массово перезаписал файлы, а потом осознал, что это было лишнее!
Отмена изменений
git checkout path/to/file.js Отменить изменения в одном конкретном файле
git revert HEAD Отмена последнего коммита с записью в истории.
Stash
git stash Спрятать изменения
git stash save "Message" Спрятать изменения с сообщением
git stash list Вывести список всех прятаний
git stash apply Вытащить последнее прятание
git stash apply stash@{1} Вытащить конкретное прятание (Если их несколько)
git stash pop Вытащить последнее прятание и удалить его
git stash pop stash@{1} Вытащить конкретное прятание и удалить его
git stash drop Удалить последнее прятание
git stash drop stash@{3} Удалить конкретное прятание
git checkout stash@{0} -- routes/api.php Вытащить конкретный файл из конкретного прятания
git stash save --include-untracked (-u) Спрятать также файлы, которые не добавлены в отслеживание (Красные)


Изменить origin адрес репозитория

1. Команда

git remote set-url origin git@github.com:vicman-wi/wi-backend.git

2. Файл

Отредактировать файл .git/config: секция [remote "origin"] параметр - url

Залить измененный коммит (--amend) в репозиторий

git push --force origin master

**Данная конструкция актуальна только в случае одиночной разработки (не в команде)

Отмена последнего коммита

Удаление последнего коммита

При условии, что это локальный репозиторий

git reset HEAD~

Полное удаление последнего коммита, включая все изменения:

git reset --hard HEAD~1

Изменить автора коммита

Последний коммит

git commit --amend --author 'Author Name <author.name@mail.com>' --no-edit

Последние несколько коммитов

git rebase -i HEAD~4 -x "git commit --amend --author 'Author Name <author.name@mail.com>' --no-edit"
  • --no-editфлаг гарантируетgit commit --amend, что не запрашивает дополнительное подтверждение
  • при использовании git rebase -i можно вручную выбрать коммиты, в которых нужно изменить автора

Примечание. Если коммиты, в которых нужно поменять автора, были уже запушены то может быть создан дополнительный коммит на изменение автора и это может потерять целесообразность. Важно удалить ветку в репозитории (если это возможно)

 Изменить дату коммита

  1. Дату последнего коммита на текущую - git commit --amend --no-edit --date=now.
  2. Дату последнего коммита на произвольную - git commit --amend --no-edit --date="2018.09.25 12:00".