113 lines
3.8 KiB
Markdown
113 lines
3.8 KiB
Markdown
### General commands
|
|
Клонирование репозитория на новый ПК:
|
|
```bash
|
|
git clone ha-server:/путь/к/wiki.git
|
|
```
|
|
|
|
### 1. Подготовка изменений (локально)
|
|
перед тем, как отправить код, нужно собрать коммит
|
|
|
|
Проверка статуса:
|
|
```bash
|
|
git status
|
|
```
|
|
Добавить файлы в очередь:
|
|
```bash
|
|
git add .
|
|
```
|
|
Сохранить изменения локально с комментарием:
|
|
```bash
|
|
git commit -m "Commit description"
|
|
```
|
|
|
|
|
|
### 2. Обмен данными с сервером
|
|
Отправка локальных коммитов на сервер:
|
|
```bash
|
|
git push
|
|
```
|
|
Забрать изменения с сервера
|
|
```bash
|
|
git pull
|
|
```
|
|
Проверка, произошли ли изменения на сервере
|
|
```bash
|
|
git fetch
|
|
```
|
|
|
|
### 3. Settings Git on my Server
|
|
1. Для работы нужно настроить ssh_config для прямого подключения через ключ
|
|
``` bash
|
|
nano ~/.ssh/config
|
|
```
|
|
|
|
2. Добавим блок нашего сервера (ключ `id_ed25519` должен быть сгенерирован)
|
|
``` bash
|
|
Host ha-server
|
|
HostName 89.109.8.114
|
|
Port 2202
|
|
User emb
|
|
IdentityFile ~/.ssh/id_ed25519
|
|
|
|
```
|
|
|
|
3. Добавим публичный ключ `.ssh/id_ed25519.pub` в содержимое
|
|
`.ssh/authorized_keys` на сервере
|
|
|
|
4. Теперь можно не использовать логин и пароль при SSH подключении и копировании
|
|
```bash
|
|
ssh ha-server
|
|
```
|
|
|
|
5. Инициализация git Bare-репозитория на сервере (git уже установлен)
|
|
```bash
|
|
mkdir -p ~/repos/my_project.git
|
|
cd ~/repos/my_project.git
|
|
git init --bare
|
|
```
|
|
|
|
|
|
### 4. Settings on work PC
|
|
1. Инициализируем Пустой репозиторий и добавляем удаленный репозиторий на Server
|
|
```bash
|
|
git init --bare
|
|
git remote add origin ha-server:/home/emb/workspace/wiki.git
|
|
```
|
|
2. Пуш в репозиторий. Внесение изменений в репозиторий и push на сервер
|
|
```bash
|
|
git add .
|
|
git commit -m "commit name"
|
|
git push -u origin master
|
|
```
|
|
|
|
3. Пулл с репозитория. Начало работы (репозиторий должен быть проинициализирован):
|
|
```bash
|
|
git pull
|
|
```
|
|
|
|
|
|
==При возникновении проблем==
|
|
Если возникла ошибка `fatal: detected dubious ownership`- владелец папки не совпадает с пользователем необходимо выполнить:
|
|
```bash
|
|
git config --global --add safe.directory /home/emb/workspace/wiki.git
|
|
```
|
|
|
|
|
|
4. Работа с ветками
|
|
|
|
Ветки нужны, чтобы делать новые фичи, не ломая основной код:
|
|
|
|
- **`git branch`** — список всех веток.
|
|
- **`git checkout -b имя_ветки`** — создать новую ветку и перейти в нее.
|
|
- **`git checkout master`** — вернуться на главную ветку.
|
|
- **`git merge имя_ветки`** — влить изменения из другой ветки в текущую.
|
|
|
|
5. Полезные мелочи
|
|
|
|
- **`git log`** — посмотреть историю всех коммитов (кто, когда и что сделал).
|
|
- **`git diff`** — увидеть конкретные изменения в строках кода до коммита.
|
|
- **`git remote -v`** — проверить, к какому серверу привязан твой локальный Git.
|
|
|
|
---
|
|
|
|
### Настройка зеркалирования репозиториев |