Шпаргалка по гиту
Указать имя пользователя и почтовый адрес локально (в рамках текущего репозитория)
Удобно, если есть личные репозитории и рабочие на одной машине.
shell code snippet start
git config --local user.name "Nick"
git config --local user.email "e@41q.ru"shell code snippet end
Посмотреть
Локальные параметры
shell code snippet start
git config --local user.name
Nick
git config --local user.email
e@41q.rushell code snippet end
Список локальных веток
shell code snippet start
git branchshell code snippet end
Какие ветки были удалены, но еще не очищены
shell code snippet start
git branch -ashell code snippet end
Список веток в удаленном репозитории
shell code snippet start
git ls-remote --heads origin 'release/*'shell code snippet end
Содержимое stash
shell code snippet start
git stash show -p stash@{0}shell code snippet end
удалённые репозитории
shell code snippet start
git remote -vshell code snippet end
Историю изменения файла
shell code snippet start
git log -- README.mdshell code snippet end
| аргумент | назначение |
|---|---|
| -v | (verbose) более подробно |
| -p | (patch) с диффом |
Посмотреть полную историю файла
shell code snippet start
git log -p -- README.mdshell code snippet end
Ветки
Переключиться на существующую ветку
shell code snippet start
git switch <branch>shell code snippet end
Создать новую ветку
на основе текущей
shell code snippet start
git switch -с <branch>shell code snippet end
на основе удаленной
shell code snippet start
git switch -c <new-branch> [<start-point>]shell code snippet end
Переименовать ветку
Для переименования локальной ветки используется параметр -m (или --move):
sh code snippet start
git branch -m old_branch new_branchsh code snippet end
Чтобы переименовать ветку на удалённом сервере
Требуется удалить старую ссылку на удалённую ветку и создать новую.
Для удаления старой удалённой ветки выполните следующую команду:
sh code snippet start
git push origin --delete old_branchsh code snippet end
Затем отправьте обновлённую ветку обратно на удалённый репозиторий:
sh code snippet start
git push origin new_branchsh code snippet end
Отменить последний коммит
shell code snippet start
git reset HEAD~1shell code snippet end
больше о git reset (selectel.ru/blog)
Cклонировать репозиторий
По-умолчанию, в текущей директории будет создана директория по-названию репозитория (gigachain)
shell code snippet start
git clone git@github.com:ai-forever/gigachain.git
Cloning into 'gigachain'...shell code snippet end
можно указать произвольную директорию
shell code snippet start
git clone git@github.com:ai-forever/gigachain.git gChain
Cloning into 'gChain'...shell code snippet end
git постоянно просит ввести пароль, хотя ssh-ключ вроде как настроен
Надо посмотреть, как указан удаленный репозиторий. Если указан протокол https, то всегда будет использоваться https, а там спрашивается логин и пароль.
Проверить это можно, посмотрев удаленные репозитории:
shell code snippet start
% git remote -v
gitverse https://gitverse.ru/sc/....git (fetch)
gitverse https://gitverse.ru/sc/....git (push)shell code snippet end
Можно удалить этот репозиторий
shell code snippet start
% git remote remove gitverseshell code snippet end
А потом, добавить заново:
shell code snippet start
% git remote add gitverse ssh://git@gitverse.ru:2222/....gitshell code snippet end
И ещё проверить файл ~/.ssh/config, чтобы там был указан тот же ключик, что заведен на удаленном репозитории.
shell code snippet start
% cat ~/.ssh/config
Host gitverse.ru
User --my-username--
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519_my-identity-fileshell code snippet end