Шпаргалка по гиту

· 1 мин. чтения
Оглавление

Указать имя пользователя и почтовый адрес локально (в рамках текущего репозитория)

Удобно, если есть личные репозитории и рабочие на одной машине.

git config --local user.name "Nick"
git config --local user.email "e@41q.ru"

Посмотреть

Локальные параметры

git config --local user.name 
Nick
git config --local user.email
e@41q.ru

Список локальных веток

git branch

Какие ветки были удалены, но еще не очищены

git branch -a

Список веток в удаленном репозитории

git ls-remote --heads origin 'release/*'

Содержимое stash

git stash show -p stash@{0}

удалённые репозитории

git remote -v

Историю изменения файла

git log -- README.md
аргументназначение
-v(verbose) более подробно
-p(patch) с диффом

Ветки

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

git switch <branch>

Создать новую ветку

на основе текущей

git switch -с <branch>

на основе удаленной

git switch -c <new-branch> [<start-point>]

stackoverflow

Удаленные репозитории (remotes)

git remote -v # посмотреть удаленные репозитории
git remote set-url origin git@gitverse.ru:e4779/some_repo # изменить адрес репозитория

Отменить последний коммит

git reset HEAD~1

больше о git reset (selectel.ru/blog)

Cклонировать репозиторий

По-умолчанию, в текущей директории будет создана директория по-названию репозитория (gigachain)

git clone git@github.com:ai-forever/gigachain.git
Cloning into 'gigachain'...

можно указать произвольную директорию

git clone git@github.com:ai-forever/gigachain.git gChain
Cloning into 'gChain'...

git постоянно просит ввести пароль, хотя ssh-ключ вроде как настроен

Надо посмотреть, как указан удаленный репозиторий. Если указан протокол https, то всегда будет использоваться https, а там спрашивается логин и пароль.

Проверить это можно, посмотрев удаленные репозитории:

% git remote -v
gitverse	https://gitverse.ru/sc/....git (fetch)
gitverse	https://gitverse.ru/sc/....git (push)

Можно удалить этот репозиторий

% git remote remove gitverse

А потом, добавить заново:

% git remote add gitverse ssh://git@gitverse.ru:2222/....git

И ещё проверить файл ~/.ssh/config, чтобы там был указан тот же ключик, что заведен на удаленном репозитории.

% cat ~/.ssh/config
Host gitverse.ru
  User --my-username--
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519_my-identity-file