Шпаргалка По Гиту
Указать имя пользователя и почтовый адрес локально (в рамках текущего репозитория)
Удобно, если есть личные репозитории и рабочие на одной машине.
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.ru
shell code snippet end
Список локальных веток
shell code snippet start
git branch
shell code snippet end
Какие ветки были удалены, но еще не очищены
shell code snippet start
git branch -a
shell 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 -v
shell code snippet end
Историю изменения файла
shell code snippet start
git log -- README.md
shell code snippet end
аргумент | назначение |
---|---|
-v | (verbose) более подробно |
-p | (patch) с диффом |
Посмотреть полную историю файла
shell code snippet start
git log -p -- README.md
shell 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_branch
sh code snippet end
Чтобы переименовать ветку на удалённом сервере
Требуется удалить старую ссылку на удалённую ветку и создать новую.
Для удаления старой удалённой ветки выполните следующую команду:
sh code snippet start
git push origin --delete old_branch
sh code snippet end
Затем отправьте обновлённую ветку обратно на удалённый репозиторий:
sh code snippet start
git push origin new_branch
sh code snippet end
Отменить последний коммит
shell code snippet start
git reset HEAD~1
shell 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 gitverse
shell code snippet end
А потом, добавить заново:
shell code snippet start
% git remote add gitverse ssh://git@gitverse.ru:2222/....git
shell 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-file
shell code snippet end