Шпаргалка по Git-командам

Пишу для себя. Может еще кому пригодится.

Начало работы

Глобальный gitignore.

git config –global core.excludesfile ~/.gitignore_global

cat ~/.gitignore_global

.idea

Файл .gitconfig в вашем $HOME каталоге.

[alias]
  co = checkout
  ci = commit
  st = status
  br = branch
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p

В файл .zshrc

alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias go='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'

alias got='git '
alias get='git '

git config --global user.name "Your Name"
git config --global user.email your.email@example.com
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global core.editor "subl -w"
git config --global merge.tool kdiff3
ssh-keygen -t rsa -C "your.email@example.com"
ssh-add -l
ssh -T git@github.com  

eval $(ssh-agent)
eval `ssh-agent -s`
ssh-add
ssh-add -K ~/.ssh/id_rsa

git init -- создание пустого Гит-хранилища
git add . -- добавить все файлы в Хранилище
git status -- поглядеть файлы в зоне ожидания
git commit -m "Initial commit" -- закоммитить изменения
git pull origin master -- Забрать обновления с сервера.

Информация по репозитарию

git log -- список сообщений о коммитах
git branch -- просмотр всех веток
git branch -v -- просмотр веток с текущими HEAD'а каждого из бранчей
git remote show origin -- просмотр удаленных веток
git diff -- изменения с момента последнего коммита
git reflog -- список истории коммитов

Отправить репозиторий в Инет

git remote add origin git@github.com:<username>/first_app.git
git push origin master

Работа с ветками

git checkout -b izmenenie-README -- создание новой ветки и переход на нее
git commit -a -m "New README" -- коммит всех изменений в файлах
git checkout -f -- откат до момента последнего коммита
git checkout <хэш> -- Переход головы на нужный хэш
git checkout master -- переход на основную ветку
git branch -d izmenenie-README -- удаление ветки

git branch -d -r izmenenie-README -- удаление удаленной ветки

git branch -- список локальных веток
git branch -a -- список всех веток включая удаленные
git remote  -- список удаленных серверов
git push origin abc -- отправить на удаленный сервер ветку abc
git push -f origin abc -- насильно пропихнуть в ветку abc
git branch -m master old_version  -- переименование веток
git branch -m new_feature master  -- переименование веток

Откат изменений

git checkout -f other-branch -- переключение на другую ветку с потерей всех несохраненный изменений
git checkout -m other-branch -- с попыткой залить в текущую ветку изменения перед переключением
git checkout -- somefile — вернуть somefile к состоянию последнего коммита
git checkout HEAD~2 somefile — вернуть somefile к состоянию на два коммита назад по ветке.
git reset --hard HEAD~2  -- откатиться на 2 коммита назад
git reset --soft HEAD~2  -- то же самое, но без удаления изменений

Rebase

git checkout bug1 -- переключаемся на бранч bug1
git rebase master -- пересадить историю изменений
git checkout master
git merge bug1

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

git checkout master
git merge develop
git mergetool
git add <conflict file>
git commit

Тайники

git stash -- спяртать изменения в тайник
git stash list -- посмотреть что спрятано
git stash apply -- применить к коду последние спрятанные данные
git stash apply stash@{2} -- применить к коду определенный тайник
git stash drop -- удалить из тайника последние спрятанные данные
git stash drop stash@{1} -- удалить определенный тайник

Поделиться Комментарии