Заработай на задачках

Частичный перевод https://www.git-tower.com/blog/git-cheat-sheet/

Создание репозитория

Получить копию существующего репозитория

$ git clone ssh://user@example.com/repo.git

Создать новый локальный репозиторий

$ git init

Локальные изменения

Изменённые файлы в рабочем каталоге

$ git status

Изменения в отслеживаемых файлах

$ git diff

Добавить все изменения в индекс git (для последующей фиксации состояния)

$ git add .

Добавить изменения в файлах _file list_ в индекс git (для последующей фиксации состояния)

$ git add -p _file list_

Зафиксировать все изменения в отслеживаемых файлах (проиндексировав перед этим известные файлы)

$ git commit -a

Зафиксировать текущее состояние репозитория (не обновляется индекс)

$ git commit

Изменить последнюю фиксацию состояния репозитория (использовать только на неопубликованной локальной копии)

$ git commit --amend

История фиксации изменений

Показать все точки фиксации, начиная с последней

$ git log

Отобразить все изменения файла _file_

$ git log -p _file_

Получить сведения о том, кто и когда изменял файл _file_

$ git blame _file_

Ветки и метки

Просмотр всех существующих веток репозитория

$ git branch -av

Переключиться на ветку _branch_

$ git checkout _branch_

Создать новую ветку _new-branch_, основанную на текущей

$ git branch _new-branch_

Создать новую отслеживаемую ветку, основанную на удалённой _remote/branch

$ git checkout --track _remote/branch_

Удалить локальную ветку _branch_

$ git branch -d _branch_

Установить метку текущей фиксации изменений

$ git tag _tag-name_

Обновление и публикация

Отобразить список удалённых репозиторий

$ git remote -v

Получить информацию об удалённом репозитории _remote

$ git remote show _remote_

Добавить новый удалённый репозиторий по ссылке _url_ с сокращённым названием _shortname_

$ git remote add _shortname_ _url_

Получить все изменения из удалённого репозитория _remote_ как отдельную ветку (не объединяя с текущей)

$ git fetch _remote_

Получить все изменения из удалённого репозитория _remote_ и объеденить их с веткой _branch_

$ git pull _remote_ _branch_

Опубликовать локальные изменения ветки _branch_ в удалённый репозиторий _remote_

$ git push _remote_ _branch_

Удалить ветку _branch_ на удалённом репозитории _remote_

$ git branch -dr _remote/branch_

Опубликовать метки

$ git push --tags

Слияние (объединения) и перемещение

Объеденить ветку _branch_ и текущую

$ git merge _branch_

Переместить HEAD на _branch_ (использовать только на локальной копии репозитория)

$ git rebase _branch_

Отменить перемещение

$ git rebase --abort

Продолжить перемещение после разрешения конфликтов

$ git rebase --continue

Запустить свою сконфигурированную программу для разрешения конфликтов

$ git mergetool

Использовать текстовый редактор для разрешения конфликтов и пометить их как разрешённые

$ git add _resolved_files_
$ git rm _resolved_files_

Отмена действий

Откатить все изменения в рабочей директории

$ git reset --hard HEAD

Откатить изменения для конкретного файла _file_

$ git checkout HEAD _file_

Вернуться к точке фиксации изменения _commut_ (создаётся новая точка с фиксацией всех изменений)

$ git revert _commit_

Переместить HEAD на предыдущую точку фиксации _commit_
…и отменить все изменения после неё

$ git reset --hard _commit_

…и пометить все изменения как непроиндексированные

$ git reset commit

…и сохранить незафиксированные изменения

$ git reset --keep commit

Я буду очень рад комментарию!

Не переживайте, e-mail нигде не отображается. Обязательные поля помечены *

Навигация по записям