Files
2026-04-22 19:55:16 +03:00

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.
---
### Настройка зеркалирования репозиториев