modify: Пт 10 апр 2026 16:26:47 MSK
This commit is contained in:
38
git.md
38
git.md
@@ -13,21 +13,21 @@
|
|||||||
|
|
||||||
Это дополнительный функционал, который не требуется для работы с Git, но очень помогает в этом. При работе с Git очень удобно, когда можно сразу определить, находитесь вы в обычном каталоге или в репозитории Git. Кроме того, было бы хорошо понимать статус текущего репозитория. Для этого нужно установить специальную утилиту, которая будет показывать статус репозитория. Для установки утилиты надо скопировать её репозиторий в домашний каталог пользователя, под которым вы работаете:
|
Это дополнительный функционал, который не требуется для работы с Git, но очень помогает в этом. При работе с Git очень удобно, когда можно сразу определить, находитесь вы в обычном каталоге или в репозитории Git. Кроме того, было бы хорошо понимать статус текущего репозитория. Для этого нужно установить специальную утилиту, которая будет показывать статус репозитория. Для установки утилиты надо скопировать её репозиторий в домашний каталог пользователя, под которым вы работаете:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
cd ~
|
cd ~
|
||||||
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
|
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
|
||||||
```
|
```
|
||||||
|
|
||||||
А затем добавить в конец файла .bashrc такие строки:
|
А затем добавить в конец файла .bashrc такие строки:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
GIT_PROMPT_ONLY_IN_REPO=1
|
GIT_PROMPT_ONLY_IN_REPO=1
|
||||||
source ~/.bash-git-prompt/gitprompt.sh
|
source ~/.bash-git-prompt/gitprompt.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Для того, чтобы изменения применились, перезапустить bash:
|
Для того, чтобы изменения применились, перезапустить bash:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
exec bash
|
exec bash
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -41,20 +41,20 @@
|
|||||||
|
|
||||||
Генерация нового SSH-ключа (используйте e-mail, который привязан к GitHub):
|
Генерация нового SSH-ключа (используйте e-mail, который привязан к GitHub):
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
ssh-keygen -t rsa -b 4096 -C "github_email@gmail.com"
|
ssh-keygen -t rsa -b 4096 -C "github_email@gmail.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
На всех вопросах достаточно нажать Enter (более безопасно использовать ключ с passphrase, но можно и без, если нажать Enter при вопросе, тогда passphrase не будет запрашиваться у вас постоянно при операциях с репозиторием).
|
На всех вопросах достаточно нажать Enter (более безопасно использовать ключ с passphrase, но можно и без, если нажать Enter при вопросе, тогда passphrase не будет запрашиваться у вас постоянно при операциях с репозиторием).
|
||||||
Запуск SSH-агента (пропускаем на Windows):
|
Запуск SSH-агента (пропускаем на Windows):
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
eval "$(ssh-agent -s)"
|
eval "$(ssh-agent -s)"
|
||||||
```
|
```
|
||||||
|
|
||||||
Добавить ключ в SSH-агент (пропускаем на Windows):
|
Добавить ключ в SSH-агент (пропускаем на Windows):
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
ssh-add ~/.ssh/id_rsa
|
ssh-add ~/.ssh/id_rsa
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -67,22 +67,22 @@
|
|||||||
Для добавления ключа надо его скопировать.
|
Для добавления ключа надо его скопировать.
|
||||||
Например, таким образом можно отобразить ключ для копирования:
|
Например, таким образом можно отобразить ключ для копирования:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
cat ~/.ssh/id_rsa.pub
|
cat ~/.ssh/id_rsa.pub
|
||||||
```
|
```
|
||||||
|
|
||||||
После копирования надо перейти на GitHub. Находясь на любой странице GitHub, в правом верхнем углу нажмите на картинку вашего профиля и в выпадающем списке выберите «Settings». В списке слева надо выбрать поле «SSH and GPG keys». После этого надо нажать «New SSH key» и в поле «Title» написать название ключа (например «Home»), а в поле «Key» вставить содержимое, которое было скопировано из файла ~/.ssh/id_rsa.pub
|
После копирования надо перейти на GitHub. Находясь на любой странице GitHub, в правом верхнем углу нажмите на картинку вашего профиля и в выпадающем списке выберите «Settings». В списке слева надо выбрать поле «SSH and GPG keys». После этого надо нажать «New SSH key» и в поле «Title» написать название ключа (например «Home»), а в поле «Key» вставить содержимое, которое было скопировано из файла ~/.ssh/id_rsa.pub
|
||||||
Чтобы проверить, всё ли прошло успешно, попробуйте выполнить команду:
|
Чтобы проверить, всё ли прошло успешно, попробуйте выполнить команду:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
ssh -T git@github.com
|
ssh -T git@github.com
|
||||||
```
|
```
|
||||||
|
|
||||||
Вывод должен быть таким:
|
Вывод должен быть таким:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
$ ssh -T git@github.com
|
$ ssh -T git@github.com
|
||||||
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
|
Hi username! You've successfully authenticated, but GitHub does not provide bash access.
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#git)
|
[вверх](#git)
|
||||||
@@ -93,31 +93,31 @@
|
|||||||
|
|
||||||
Клонируем удаленный репозиторий в локальную папку
|
Клонируем удаленный репозиторий в локальную папку
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git clone ssh://git@github.com/pyneng/online-2-natasha-samoylenko.git
|
git clone ssh://git@github.com/pyneng/online-2-natasha-samoylenko.git
|
||||||
```
|
```
|
||||||
|
|
||||||
После внесения измений в локальные файлы проверяем состояние локального репозитория
|
После внесения измений в локальные файлы проверяем состояние локального репозитория
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git status
|
git status
|
||||||
```
|
```
|
||||||
|
|
||||||
Необходимо добавить файлы в отслеживаемые
|
Необходимо добавить файлы в отслеживаемые
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git add <имя файла>
|
git add <имя файла>
|
||||||
```
|
```
|
||||||
|
|
||||||
Создадим коммит
|
Создадим коммит
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git commit -m "описание изменений"
|
git commit -m "описание изменений"
|
||||||
```
|
```
|
||||||
|
|
||||||
Синхронизируем локальный и удаленный репозитории
|
Синхронизируем локальный и удаленный репозитории
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git push
|
git push
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -129,13 +129,13 @@
|
|||||||
|
|
||||||
1. Клонировать репозиторий с указанием необходимого ключа
|
1. Клонировать репозиторий с указанием необходимого ключа
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git clone -c core.sshCommand="/usr/bin/ssh -i /home/da2001/.ssh/sape_a.dolgiy" ssh://git@gitlab.sapient.ru:7999/devops/salt.git
|
git clone -c core.sshCommand="/usr/bin/ssh -i /home/da2001/.ssh/sape_a.dolgiy" ssh://git@gitlab.sapient.ru:7999/devops/salt.git
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Указать в настройках локального репозитория необходимый ключ
|
2. Указать в настройках локального репозитория необходимый ключ
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
git config --local core.sshCommand "/usr/bin/ssh -i /home/da2001/.ssh/sape_a.dolgiy"
|
git config --local core.sshCommand "/usr/bin/ssh -i /home/da2001/.ssh/sape_a.dolgiy"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ git config --local core.sshCommand "/usr/bin/ssh -i /home/da2001/.ssh/sape_a.dol
|
|||||||
|
|
||||||
### Полная последовательность для Rebase:
|
### Полная последовательность для Rebase:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
# 1. Переключиться на основную ветку
|
# 1. Переключиться на основную ветку
|
||||||
git switch master
|
git switch master
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ git rebase master
|
|||||||
|
|
||||||
При возникновении конфликтов
|
При возникновении конфликтов
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
# Во время rebase Git сообщит о конфликтах
|
# Во время rebase Git сообщит о конфликтах
|
||||||
# 1. Редактируете файлы, устраняете конфликты
|
# 1. Редактируете файлы, устраняете конфликты
|
||||||
# 2. Добавляете исправленные файлы:
|
# 2. Добавляете исправленные файлы:
|
||||||
|
|||||||
Reference in New Issue
Block a user