Мой набор команд при работе с git

октябрь 11 , 2016
Предыдущая статья Следующая статья

Всегда был сторонником работы с git в командной строке. Думаю, это помогает лучше понимать этот инструмент, а также позволяет не зависеть от GUI IDE. В статье я приведу набор команд, которыми приходится пользоваться при работе с git и кратко поясню их назначение.

Список дополняется...


Базовые операции с репозиторием

Инициализировать репозиторий
git init
Добавить удаленный репозиторий
git remote add origin git@bitbucket.org:username/project.git
Клонировать репозиторий с сервера
git clone git@bitbucket.org:username/project.git

Статус

Смотрим, что с рабочими файлами
git status

Добавляем и исключаем файлы

Добавляем file.js
git add file.js
Добавляем все файлы
git add .
Ресет file.js
git reset file.js
Ресет всех файлов
git reset .

Изменения

Смотрим изменения
git diff
Смотрим изменения в file.js
git diff file.js

Делаем коммиты

Делаем коммит
git commit -m 'commit message'
Делаем коммит, сразу добавив все файлы
git commit -a -m 'commit message'
Перезаписываем последний коммит
git commit --amend -m 'new commit message'
Ресет последнего коммита
git reset --soft HEAD^

Управляем ветками

Смотрим локальные ветки
git branch
Смотрим локальные и удаленные ветки
git branch -a
Переключаемся на мастер
git checkout master
Создаем новую ветку и переключаемся на нее
git checkout -b new_branch
Создаем локальную ветку как копию с удаленного сервера
git checkout -b new_branch origin/new_branch
Удаляем локальную ветку (пустую или влитую в мастер)
git branch -d new_branch
Просто удаляем локальную ветку
git branch -D new branch
Удаляем ветку с сервера
git push origin :new_branch
Подтягиваем изменения ветки мастер
git pull --rebase origin master

Подтягиваем изменения с сервера

Подтягиваем все изменения с сервера, не вливая их
git fetch
Пушим ветку
git push origin new_branch
Пушим ветку с перезаписью истории коммитов (только когда хорошо понимаете, что делаете)
git push -f origin new_branch

Слияние веток

merge vs rebase

Просто мерджим ветку
git merge new_branch
Мерджим ветку с созданием мердж-коммита
git merge --no-ff new_branch
Ребейзимся от мастера
git rebase master

Работаем со стэшем

Стэшим изменения
git stash
Вытаскиваем последние изменения из стэша
git stash pop
Смотрим список стэша
git stash list
Очищаем стэш
git stash clear
Вытаскиваем конкретные изменения из стэша
git stash apply stash@{2}

История

Смотрим историю
git log
Смотрим историю с изменениями в файлах
git log -p
История коммитов в одну строку
git log --oneline
История коммитов в виде дерева
git log --stat --graph
Кто работал с файлом
git blame file.js

git cherry

Как далеко разъехалась ветка с мастером
git cherry master
Как далеко разъехалась ветка с удаленным мастером
git cherry origin/master
Флаг -v, больше информации
git cherry -v master
На сколько коммитов ветка уехала от мастера
git cherry master | wc -l

cherry-pick

Копируем коммит в текущую ветку
git cherry-pick hash_commit

git rebase --interactive

git rebase -i HEAD~5

Все статьи о git

Предыдущая статья Следующая статья
Заходите в группу в контакте - https://vk.com/webdevkin
Анонсы статей, обсуждения интернет-магазинов, vue, фронтенда, php, гита.
Истории из жизни айти и обсуждение кода.
Как Вам статья? Оцените!