Skip to content

Commit dfa82f4

Browse files
Merge bugfix/1 into main
2 parents 1b1f967 + fcb8b8f commit dfa82f4

File tree

7 files changed

+119
-1
lines changed

7 files changed

+119
-1
lines changed

bugfix1/bugfix1_30.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Bug fix commit 30

bugfix1/bugfix1_31.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Bug fix commit 31
File renamed without changes.

line_merge_demo.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ cd /Users/andreyshabunov/PhpstormProjects/git-practics
3636
echo "Creating bugfix/1 branch..."
3737
git checkout -b bugfix/1
3838
git checkout bugfix/1
39-
for i in {24..25}; do
39+
for i in {30..31}; do
4040
cd /Users/andreyshabunov/PhpstormProjects/git-practics/bugfix1/
4141
echo "Bug fix commit $i" > bugfix1_$i.txt
4242
cd /Users/andreyshabunov/PhpstormProjects/git-practics/

merge.md

Whitespace-only changes.

rebase_merge-no-ff.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
2+
---
3+
4+
# Инструкция для работы с веткой `bugfix/1`
5+
6+
## Создание ветки `bugfix/1` и добавление коммитов
7+
1. **Создайте ветку `bugfix/1` и переключитесь на неё**:
8+
```bash
9+
git checkout -b bugfix/1
10+
```
11+
12+
2. **Добавьте коммиты в ветку `bugfix/1`**:
13+
- Скрипт автоматически создаст два коммита (с номерами 28 и 29) и отправит их в удалённый репозиторий:
14+
```bash
15+
for i in {28..29}; do
16+
cd /Users/andreyshabunov/PhpstormProjects/git-practics/bugfix1/
17+
echo "Bug fix commit $i" > bugfix1_$i.txt
18+
cd /Users/andreyshabunov/PhpstormProjects/git-practics/
19+
git add .
20+
git commit -m "Bug fix commit $i"
21+
git push -u origin bugfix/1
22+
done
23+
```
24+
25+
---
26+
27+
## Обновление ветки `main`
28+
3. **Переключитесь на ветку `main`**:
29+
```bash
30+
git checkout main
31+
```
32+
33+
4. **Получите актуальные изменения из удалённого репозитория**:
34+
```bash
35+
git pull origin main
36+
```
37+
38+
---
39+
40+
## Выполнение rebase ветки `bugfix/1` на `main`
41+
5. **Переключитесь на ветку `bugfix/1`**:
42+
```bash
43+
git checkout bugfix/1
44+
```
45+
46+
6. **Выполните rebase ветки `bugfix/1` на `main`**:
47+
```bash
48+
git rebase main
49+
```
50+
- **Если возникнут конфликты**:
51+
- Разрешите конфликты вручную.
52+
- Добавьте изменённые файлы:
53+
```bash
54+
git add <file>
55+
```
56+
- Продолжите rebase:
57+
```bash
58+
git rebase --continue
59+
```
60+
61+
---
62+
63+
## Слияние ветки `bugfix/1` в `main` с использованием `--no-ff`
64+
7. **Переключитесь на ветку `main`**:
65+
```bash
66+
git checkout main
67+
```
68+
69+
8. **Выполните слияние (`merge`) ветки `bugfix/1` в `main` с флагом `--no-ff`**:
70+
```bash
71+
git merge --no-ff bugfix/1 -m "Merge bugfix/1 into main"
72+
```
73+
- Флаг `--no-ff` гарантирует создание коммита слияния, даже если возможен fast-forward.
74+
75+
9. **Отправьте изменения в удалённый репозиторий**:
76+
```bash
77+
git push -u origin main
78+
```
79+
80+
---
81+
82+
## Итоговое состояние репозитория
83+
10. **Проверьте историю коммитов**:
84+
```bash
85+
git log --oneline --graph --all
86+
```
87+
- После выполнения скрипта история будет выглядеть примерно так:
88+
```plaintext
89+
* commit_hash Merge bugfix/1 into main
90+
|\
91+
| * commit_hash Bug fix commit 29
92+
| * commit_hash Bug fix commit 28
93+
* | commit_hash Previous commit in main
94+
```
95+
96+
---
97+
98+
## Дополнительные рекомендации
99+
- **Создайте резервную копию ветки `bugfix/1` перед rebase**:
100+
Если что-то пойдёт не так, вы сможете вернуться к исходному состоянию:
101+
```bash
102+
git branch bugfix/1-backup bugfix/1
103+
```
104+
105+
- **Удалите ветку `bugfix/1` после слияния**:
106+
Если ветка больше не нужна, удалите её:
107+
```bash
108+
git branch -d bugfix/1 # Удалить локальную ветку
109+
git push origin --delete bugfix/1 # Удалить удалённую ветку
110+
```
111+
112+
---
113+
114+
## Краткое описание изменений
115+
- **Rebase**: Перемещает коммиты из `bugfix/1` на вершину `main`, делая историю линейной.
116+
- **Merge с `--no-ff`**: Создаёт коммит слияния, чтобы явно показать, что ветка `bugfix/1` была влита в `main`.
File renamed without changes.

0 commit comments

Comments
 (0)