71 lines
4.5 KiB
Markdown
71 lines
4.5 KiB
Markdown
## git
|
||
|
||
#### 1. Отображение статуса репозитория в приглашении
|
||
Это дополнительный функционал, который не требуется для работы с Git, но очень помогает в этом. При работе с Git очень удобно, когда можно сразу определить, находитесь вы в обычном каталоге или в репозитории Git. Кроме того, было бы хорошо понимать статус текущего репозитория. Для этого нужно установить специальную утилиту, которая будет показывать статус репозитория. Для установки утилиты надо скопировать её репозиторий в домашний каталог пользователя, под которым вы работаете:
|
||
```
|
||
cd ~
|
||
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
|
||
```
|
||
А затем добавить в конец файла .bashrc такие строки:
|
||
```
|
||
GIT_PROMPT_ONLY_IN_REPO=1
|
||
source ~/.bash-git-prompt/gitprompt.sh
|
||
```
|
||
Для того, чтобы изменения применились, перезапустить bash:
|
||
```
|
||
exec bash
|
||
```
|
||
Теперь, если вы находитесь в обычном каталоге, приглашение выглядит стандартно, а если в каталоге, в котором инициализирован репозиторий git, это будет указано.
|
||
|
||
#### 2. Аутентификация на GitHub с помощью SSH-ключа
|
||
###### Генерация нового SSH-ключа (используйте e-mail, который привязан к GitHub):
|
||
```
|
||
ssh-keygen -t rsa -b 4096 -C "github_email@gmail.com"
|
||
```
|
||
На всех вопросах достаточно нажать Enter (более безопасно использовать ключ с passphrase, но можно и без, если нажать Enter при вопросе, тогда passphrase не будет запрашиваться у вас постоянно при операциях с репозиторием).
|
||
Запуск SSH-агента (пропускаем на Windows):
|
||
```
|
||
eval "$(ssh-agent -s)"
|
||
```
|
||
Добавить ключ в SSH-агент (пропускаем на Windows):
|
||
```
|
||
ssh-add ~/.ssh/id_rsa
|
||
```
|
||
###### Добавление SSH-ключа на GitHub
|
||
Для добавления ключа надо его скопировать.
|
||
Например, таким образом можно отобразить ключ для копирования:
|
||
```
|
||
cat ~/.ssh/id_rsa.pub
|
||
```
|
||
После копирования надо перейти на GitHub. Находясь на любой странице GitHub, в правом верхнем углу нажмите на картинку вашего профиля и в выпадающем списке выберите «Settings». В списке слева надо выбрать поле «SSH and GPG keys». После этого надо нажать «New SSH key» и в поле «Title» написать название ключа (например «Home»), а в поле «Key» вставить содержимое, которое было скопировано из файла ~/.ssh/id_rsa.pub
|
||
Чтобы проверить, всё ли прошло успешно, попробуйте выполнить команду:
|
||
```
|
||
ssh -T git@github.com
|
||
```
|
||
Вывод должен быть таким:
|
||
```
|
||
$ ssh -T git@github.com
|
||
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
|
||
```
|
||
#### 3. Работа с удаленным репозиторием
|
||
Клонируем удаленный репозиторий в локальную папку
|
||
```
|
||
git clone ssh://git@github.com/pyneng/online-2-natasha-samoylenko.git
|
||
```
|
||
После внесения измений в локальные файлы проверяем состояние локального репозитория
|
||
```
|
||
git status
|
||
```
|
||
Необходимо добавить файлы в отслеживаемые
|
||
```
|
||
git add <имя файла>
|
||
```
|
||
Создадим коммит
|
||
```
|
||
git commit -m "описание изменений"
|
||
```
|
||
Синхронизируем локальный и удаленный репозитории
|
||
```
|
||
git push
|
||
```
|