Команды Git
Конфигурация
git config --global user.name "[name]" – установить имя, которое будет прикрепляться к коммиту.
git config --global user.email "[email address]" – установить email, который будет прикрепляться к коммиту.
Создание репозиториев
git init [project-name] – создать новый локальный репозиторий с заданным именем.
git clone [url] – загрузить проект и его полную историю изменений.
Работа с файлами
git rm [file] – удалить файл из рабочей директории и добавить в индекс информацию об удалении.
git rm --cached [file] – удалить файл из репозитория, но сохранить его локально.
Работа с изменениями
git status – полный список изменений файлов, ожидающих коммита (-s – краткий вид изменений)
git diff – показать изменения в файлах, которые еще не были добавлены в индекс коммита (staged).
git add [file] – сделать указанный файл готовым для коммита.
git add . – сделать все измененные файлы готовыми для коммита.
git add '*.txt' – добавить только файлы, соответствующие указанному выражению.
git diff --staged – показать что было добавленно в индекс с помощью git add, но еще не было закоммиченно.
git diff HEAD – показать что изменилось с последнего коммита.
git diff [branch] – сравнить текущую ветку с заданной.
git difftool -d master.. – показать изменения, сделанные в текущей ветке.
git diff --stat – показать статистику какие файлы были изменены и как.
git reset [file] – убрать файлы из индекса коммита (изменения не теряются).
git commit – записать изменения в репозиторий. для написания сообщения откроется назначенный редактор.
git commit -m "[descriptive message]" – записать изменения с заданным сообщением.
git commit --amend – добавить изменения к последнему коммиту.
Работа с ветками
git branch – список всех локальных веток в текущей директории.
git branch [branch-name] – создать новую ветку.
git checkout [branch-name] – переключиться на указанную ветку и обновить рабочую директорию.
git checkout -b <name> <remote>/<branch> – переключиться на удаленную ветку.
git checkout [filename] – вернуть файл в первоначальное состояние если он еще не был добавлен в индекс коммита.
git merge [branch] – соединить изменения в текущей ветке с изменениями из заданной.
git branch -a – посмотреть полный список локальных и удаленных веток.
git branch -d [branch] – удалить заданную ветку.
git branch -D [branch] – принудительно удалить заданную ветку, игнорируя ошибки.
git branch -m <oldname> <newname> – переименовать ветку.
Просмотр истории
git log – список изменения текущей ветки.
git log --pretty=format:"%h %s" --graph – изменение вида отображения истории изменений.
git log --author='Name' --after={1.week.ago} --pretty=oneline --abbrev-commit – посмотреть над чем работал заданный пользователь последнюю неделю.
git log --no-merges master.. – посмотреть историю изменений только для текущей ветки.
git show [commit] – показать метадату и изменения в заданном коммите.
git show [branch]:[file] – посмотреть на файл в другой ветке, не переключаясь на неё.
Отмена коммитов
git reset – убрать изменения из индекса коммита, сами изменения останутся.
git reset [commit/tag] – отменить все коммиты после указанного коммита, изменения будут сохранены локально.
git reset --hard [commit] – принудительно вернутся к указанному коммиту, не сохраняя историю и изменения.
Синхронизация изменений
git fetch [bookmark] – загрузить всю историю с заданного удаленного репозитория.
git push – запушить текущую ветку в удаленную ветку.
git push [remote] [branch] – запушить ветку в указанный репозиторий и удаленную ветку.
git pull – загрузить историю и изменения удаленной ветки и произвести слияние с текущей веткой.
git pull [remote][branch] – указать конкретную удаленную ветку для слияния.
git remote – посмотреть список доступных удаленных репозиториев.
git remote add [remote][url] – добавить новый удаленный репозиторий.
Last updated