Skip to content

Добавлена инструкция по Git #167

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Соответствие групп и тем на практикум.
## Соответствие групп и тем на практикум.

1. Что такое система контроля версий
2. Для чего нужна система контроля версий
Expand Down
305 changes: 305 additions & 0 deletions README1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
# -Git-
# Инструкция по работе с Git и удалёнными репозиториями

## Что такое Git?

Git — это одна из реализаций распределённых систем контроля версий, имеющая как и локальные, так и удалённые репозитории. Является самой популярной реализацией систем контроля версий в мире.

Git позволяет отслеживать изменения в файлах, сохранять историю изменений и сотрудничать с другими разработчиками через удалённые репозитории. Это особенно полезно в командной работе, где несколько человек работают над одним проектом. Git помогает избежать конфликтов при одновременной работе над файлами и позволяет легко откатывать изменения, если что-то пошло не так.

## Подготовка репозитория

### Инициализация репозитория
1. Откройте Visual Studio Code и перейдите
в терминал (View -> Terminal).
2. Перейдите в директорию проекта и выполните команду git init, чтобы создать новый репозиторий. После этого откроется открытая папка .git, содержащая все данные о репозитории.
```bash
git init
```
Эта команда инициализирует новый репозиторий Git в текущей директории. После её выполнения Git начнёт отслеживать изменения в файлах этой директории. Вы можете проверить, что репозиторий создан, выполнив ls -a и убедившись, что в списке файлов появилась папка .git.

## Создание коммитов

### Добавление изменений в коммит
Для добавления изменений в коммит используется команда git add. Чтобы добавить изменения в коммит, выполните:
```bash
git add <имя_файла>
```
Эта команда добавляет изменения в файле <имя_файла> в индекс (staging area), готовя их к коммиту. Вы можете использовать git add ., чтобы добавить все изменения в текущей директории.

### Создание коммита
Для создания коммита используется команда git commit. Выполните команду и добавьте сообщение, описывающее изменения:
```bash
git commit -m "Ваше сообщение"
```
Команда git commit сохраняет все изменения, добавленные в индекс, в виде нового коммита. Сообщение коммита должно быть информативным и кратким, чтобы другие разработчики могли быстро понять внешные изменения. Это помогает другим разработчикам понять, что было изменено в проекте.

## Просмотр состояния репозитория
Для того чтобы посмотреть состояние репозитория, используйте команду git status. Эта команда покажет текущие изменения в файлах, которые ещё не были закоммичены:
```bash
git status
```
Команда git status показывает текущее состояние рабочей директории и индекса. Она указывает, какие файлы были изменены, какие готовы к коммиту, и какие ещё не отслеживаются Git. Это полезно для отслеживания текущего состояния проекта.

## Откат изменений

### Откат коммита
```bash
git revert <commit_hash>
```

### Сброс изменений
```bash
git reset <commit_hash>
```
## Работа с ветками
Ветки позволяют работать над разными задачами параллельно. Например, одна ветка может использоваться для разработки новой функции, а другая — для исправления ошибок.

### Создание ветки
```bash
git branch <branch_name>
```

### Переключение на ветку
```bash
git switch <branch_name>
```

### Создание и переключение на новую ветку
```bash
git switch -c <branch_name>
```

### Создание и работа с 4 ветками
#### Создание feature-1
```bash
git switch -c Feature-1
echo 'Изменения в feature-1' > file.txt
git add file.txt
git commit -m 'Добавлены изменения в feature-1'
git switch main
```

#### Создание feature-2
```bash
git checkout -b feature-2
echo 'Изменения в feature-2' > file.txt
git add file.txt
git commit -m 'Добавлены изменения в feature-2'
git switch main
```

#### Создание bugfix-1
```bash
git checkout -b bugfix-1
echo "Исправление ошибки в bugfix-1" > file.txt
git add file.txt
git commit -m "Исправлен баг в bugfix-1"
git switch main
```

#### Создание feature-3
```bash
git checkout -b feature-3
echo 'Изменения в feature-3' > file.txt
git add file.txt
git commit -m 'Добавлены изменения в feature-3'
git switch main
```

## Слияние изменений
Слияние позволяет объединить изменения из одной ветки в другую. Это важно для интеграции новых функций или исправлений в основную ветку разработки.

### Слияние текущей ветки с другой
```bash
git merge <branch_name>
```

#### Слияние feature-1 в main
```bash
git merge feature-1
```

#### Слияние feature-2 с конфликтом
```bash
git merge feature-2
# Если возник конфликт, Git попросит вручную исправить файлы
git add file.txt
git commit -m "Конфликт исправлен"
```

#### Слияние bugfix-1
```bash
git merge bugfix-1
```

#### Слияние feature-3
```bash
git merge feature-3
```

## Разрешение конфликтов
В случае конфликтов Git попросит вас разрешить их вручную. После разрешения конфликтов необходимо завершить слияние:
```bash
git add <file_with_conflict>
git commit -m "Конфликт исправлен"
```

Если возник конфликт:
1. Открыть file.txt и вручную исправить конфликт
2. Закоммитить исправленный файл
```bash
git add file.txt
git commit -m "Разрешен конфликт между feature-2 и main"
```

## Удаление веток после слияния
```bash
git branch -d feature-1
git branch -d feature-2
git branch -d bugfix-1
git branch -d feature-3
```

## Тэги
Тэги используются для обозначения важных версий проекта.

### Создание тэга
```bash
git tag <tag_name>
```

### Переключение на тэг
```bash
git checkout <tag_name>
```

## Работа с удалёнными репозиториями
Удалённые репозитории позволяют хранить код на таких платформах, как GitHub, GitLab или Bitbucket, и работать над проектом в команде.

### Подключение удалённого репозитория
Перед тем как отправить код в удалённый репозиторий, его нужно сначала подключить.

#### Создание удалённого репозитория на GitHub
1. Перейдите на сайт GitHub и войдите в аккаунт.
2. Нажмите "New repository" (Создать репозиторий).
3. Введите имя репозитория, выберите "Public" (публичный) или "Private" (приватный).
4. Нажмите "Create repository".
5. Скопируйте предложенную ссылку (например, https://github.com/ваш_логин/имя_репозитория.git).

#### Добавление удалённого репозитория в локальный проект
Если у вас уже есть локальный репозиторий, свяжите его с удалённым:
```bash
git remote add origin https://github.com/ваш_логин/имя_репозитория.git
```

Чтобы убедиться, что репозиторий добавлен, выполните:
```bash
git remote -v
```

Вы должны увидеть примерно такой вывод:
```bash
origin https://github.com/ваш_логин/имя_репозитория.git (fetch)
origin https://github.com/ваш_логин/имя_репозитория.git (push)
```

### Отправка изменений в удалённый репозиторий
После создания коммита (git commit -m "Описание коммита") его можно отправить на GitHub.

#### Отправка изменений (push)
```bash
git push origin main
```

Если у вас основная ветка называется master, используйте:
```bash
git push origin master
```
После этого ваш код появится в удалённом репозитории.

#### Первая отправка (если репозиторий новый)
Если репозиторий только что создан, выполните:
```bash
git push -u origin main
```

Флаг -u позволяет запомнить ветку, чтобы в будущем использовать просто git push.

### Получение изменений из удалённого репозитория
Если кто-то внёс изменения в репозиторий, их можно загрузить командой:
```bash
git pull origin main
```
Эта команда скачает обновления и автоматически объединит их с вашими файлами.

Если возник конфликт, Git предложит исправить его вручную.

### Клонирование удалённого репозитория
Если вам нужно скачать проект с GitHub, используйте команду:
```bash
git clone https://github.com/ваш_логин/имя_репозитория.git
```
После этого создастся папка с проектом, и можно будет с ним работать.

### Работа с ветками в удалённом репозитории

#### Создание новой ветки и отправка в удалённый репозиторий
1. Создайте новую ветку локально:
```bash
git checkout -b feature-branch
```
2. Добавьте изменения и закоммитьте:
```bash
git add .
git commit -m "Добавлена новая функциональность"
```
3. Отправьте новую ветку на GitHub:
```bash
git push origin feature-branch
```

#### Переключение на существующую ветку с GitHub
Чтобы загрузить и переключиться на ветку, которая уже есть на GitHub:
```bash
git fetch origin
git switch feature-branch
```
или
```bash
git switch feature-branch
```

### Удаление удалённой ветки
Если ветка больше не нужна, её можно удалить:
```bash
git push origin --delete feature-branch
```
Локально удалите её командой:
```bash
git branch -d feature-branch
```

### Работа с Pull Requests (PR) на GitHub
Pull Request (PR) — это запрос на внесение изменений в основную ветку.

#### Как создать PR?
1. Перейдите в свой репозиторий на GitHub.
2. Нажмите "Pull requests" -> "New pull request".
3. Выберите ветку, из которой хотите внести изменения.
4. Оставьте комментарий и отправьте на рассмотрение.

Обычно перед слиянием других разработчиков просят проверить код и оставить комментарии.

## Полезные ссылки
[Официальная документация Git](https://git-scm.com/doc)

[GitHub Guides](https://docs.github.com/ru)


***КОНЕЦ!!!***