Skip to content

Commit 42c9ae8

Browse files
authored
Merge pull request #371 from SergeiKuznetsov/ch3-sync
Синхронизация с оригиналом (глава 3)
2 parents c2ec0f7 + f133018 commit 42c9ae8

File tree

3 files changed

+129
-13
lines changed

3 files changed

+129
-13
lines changed

book/03-git-branching/sections/basic-branching-and-merging.asc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ image::images/basic-branching-2.png["Создание нового указат
5050
[source,console]
5151
----
5252
$ vim index.html
53-
$ git commit -a -m 'added a new footer [issue 53]'
53+
$ git commit -a -m 'Create new footer [issue 53]'
5454
----
5555

5656
.Ветка iss53 двигается вперед
@@ -133,8 +133,8 @@ Deleted branch hotfix (3a0874c).
133133
$ git checkout iss53
134134
Switched to branch "iss53"
135135
$ vim index.html
136-
$ git commit -a -m 'finished the new footer [issue 53]'
137-
[iss53 ad82d7a] finished the new footer [issue 53]
136+
$ git commit -a -m 'Finish the new footer [issue 53]'
137+
[iss53 ad82d7a] Finish the new footer [issue 53]
138138
1 file changed, 1 insertion(+)
139139
----
140140

book/03-git-branching/sections/branch-management.asc

Lines changed: 109 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ $ git branch
2222
[source,console]
2323
----
2424
$ git branch -v
25-
iss53 93b412c fix javascript issue
25+
iss53 93b412c Fix javascript issue
2626
* master 7a98805 Merge branch 'iss53'
27-
testing 782fd34 add scott to the author list in the readmes
27+
testing 782fd34 Add scott to the author list in the readme
2828
----
2929

3030
Опции `--merged` и `--no-merged` могут отфильтровать этот список для вывода только тех веток, которые слиты или ещё не слиты в текущую ветку.
@@ -73,3 +73,110 @@ $ git branch --no-merged master
7373
featureB
7474
----
7575
====
76+
77+
==== Переименование ветки
78+
79+
[CAUTION]
80+
====
81+
Не переименовывайте ветки, которые всё ещё используются другими участниками.
82+
Не переименовывайте ветку в master/main/mainline, не прочитав раздел «Изменение имени главной ветки».
83+
====
84+
85+
Предположим, у вас есть ветка с именем `bad-branch-name`, и вы хотите изменить её на `corrected-branch-name`, сохранив при этом всю историю.
86+
Вместе с этим, вы также хотите изменить имя ветки на удалённом сервере (GitHub, GitLab или другой сервер).
87+
Как это сделать?
88+
89+
Переименуйте ветку локально с помощью команды `git branch --move`:
90+
91+
[source, console]
92+
----
93+
$ git branch --move bad-branch-name corrected-branch-name
94+
----
95+
96+
Ветка `bad-branch-name` будет переименована в `corrected-branch-name`, но это изменение пока только локальное.
97+
Чтобы все остальные увидели исправленную ветку в удалённом репозитории, отправьте её туда:
98+
99+
[source,console]
100+
----
101+
$ git push --set-upstream origin corrected-branch-name
102+
----
103+
104+
Теперь проверим, где мы сейчас находимся:
105+
106+
[source, console]
107+
----
108+
$ git branch --all
109+
* corrected-branch-name
110+
main
111+
remotes/origin/bad-branch-name
112+
remotes/origin/corrected-branch-name
113+
remotes/origin/main
114+
----
115+
116+
Обратите внимание, что текущая ветка `corrected-branch-name`, которая также присутствует и на удалённом сервере.
117+
Однако, старая ветка всё ещё по-прежнему там, но её можно удалить с помощью команды:
118+
119+
[source,console]
120+
----
121+
$ git push origin --delete bad-branch-name
122+
----
123+
124+
Теперь старое имя ветки полностью заменено исправленным.
125+
126+
===== Изменение имени главной ветки
127+
128+
[WARNING]
129+
====
130+
Изменение имени ветки, например master/main/mainline/default, сломает интеграции, службы, вспомогательные утилиты и скрипты сборки, которые использует ваш репозиторий.
131+
Прежде чем сделать это, обязательно проконсультируйтесь с коллегами.
132+
Также убедитесь, что вы выполнили тщательный поиск в своём репозитории и обновили все ссылки на старое имя ветки в вашем коде или скриптах.
133+
====
134+
135+
Переименуйте локальную ветку `master` в `main` с помощью следующей команды:
136+
137+
[source,console]
138+
----
139+
$ git branch --move master main
140+
----
141+
142+
После этого, локальной ветки `master` больше не существует, потому что она была переименована в ветку `main`.
143+
144+
Чтобы все остальные могли видеть новую ветку `main`, вам нужно отправить её в общий репозиторий.
145+
Это делает переименованную ветку доступной в удалённом репозитории.
146+
147+
[source,console]
148+
----
149+
$ git push --set-upstream origin main
150+
----
151+
152+
В итоге, состояние репозитория становится следующим:
153+
154+
[source,console]
155+
----
156+
git branch --all
157+
* main
158+
remotes/origin/HEAD -> origin/master
159+
remotes/origin/main
160+
remotes/origin/master
161+
----
162+
163+
Ваша локальная ветка `master` исчезла, так как она заменена веткой `main`.
164+
Ветка `main` доступна в удалённом репозитории.
165+
Старая ветка `master` всё ещё присутствует в удалённом репозитории.
166+
Остальные участники будут продолжать использовать ветку `master` в качестве основы для своей работы, пока вы не совершите ряд дополнительных действий.
167+
168+
Теперь, для завершения перехода на новую ветку перед вами стоят следующие задачи:
169+
170+
* Все проекты, которые зависят от текущего, должны будут обновить свой код и/или конфигурацию.
171+
* Обновите конфигурацию всех запускаемых тестов.
172+
* Исправьте скрипты сборки и публикации артефактов.
173+
* Поправьте настройки репозитория на сервере: задайте новую ветку по умолчанию, обновите правила слияния, а также прочие настройки, которые зависят от имени веток.
174+
* Обновите документацию, исправив ссылки, указывающие на старую ветку.
175+
* Слейте или отмените запросы на слияние изменений, нацеленные на старую ветку.
176+
177+
После того, как вы выполнили все эти задачи и уверены, что ветка `main` работает так же, как ветка `master`, вы можете удалить ветку `master`:
178+
179+
[source, console]
180+
----
181+
$ git push origin --delete master
182+
----

book/03-git-branching/sections/nutshell.asc

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
[source,console]
1515
----
1616
$ git add README test.rb LICENSE
17-
$ git commit -m 'initial commit of my project'
17+
$ git commit -m 'Initial commit'
1818
----
1919

2020
Когда вы создаёте коммит командой `git commit`, Git вычисляет контрольные суммы каждого подкаталога (в нашем случае, только основной каталог проекта) и сохраняет его в репозитории как объект дерева каталогов.
@@ -81,9 +81,9 @@ image::images/head-to-master.png["HEAD указывает на ветку"]
8181
[source,console]
8282
----
8383
$ git log --oneline --decorate
84-
f30ab (HEAD, master, testing) add feature #32 - ability to add new
85-
34ac2 fixed bug #1328 - stack overflow under certain conditions
86-
98ca9 initial commit of my project
84+
f30ab (HEAD -> master, testing) Add feature #32 - ability to add new formats to the central interface
85+
34ac2 Fix bug #1328 - stack overflow under certain conditions
86+
98ca9 Initial commit
8787
----
8888

8989
Здесь можно увидеть указывающие на коммит `f30ab` ветки: `master` и `testing`.
@@ -175,11 +175,11 @@ image::images/advance-master.png["Разветвлённая история"]
175175
[source,console]
176176
----
177177
$ git log --oneline --decorate --graph --all
178-
* c2b9e (HEAD, master) made other changes
179-
| * 87ab2 (testing) made a change
178+
* c2b9e (HEAD, master) Made other changes
179+
| * 87ab2 (testing) Made a change
180180
|/
181-
* f30ab add feature #32 - ability to add new formats to the
182-
* 34ac2 fixed bug #1328 - stack overflow under certain conditions
181+
* f30ab Add feature #32 - ability to add new formats to the central interface
182+
* 34ac2 Fix bug #1328 - stack overflow under certain conditions
183183
* 98ca9 initial commit of my project
184184
----
185185

@@ -199,3 +199,12 @@ $ git log --oneline --decorate --graph --all
199199
Как правило, при создании новой ветки вы хотите сразу на неё переключиться -- это можно сделать используя команду `git checkout -b <newbranchname>`.
200200
====
201201

202+
[NOTE]
203+
====
204+
Начиная с Git версии 2.23, вы можете использовать `git switch` вместо `git checkout`, чтобы:
205+
206+
- Переключиться на существующую ветку: `git switch testing-branch`.
207+
- Создать новую ветку и переключиться на нее: `git switch -c new-branch`.
208+
Флаг `-c` означает создание, но также можно использовать полный формат:` --create`.
209+
- Вернуться к предыдущей извлечённой ветке: `git switch -`.
210+
====

0 commit comments

Comments
 (0)