Skip to content

Commit 36b0b61

Browse files
committed
Синхронизация с оригиналом (глава 3)
1 parent 6846ed8 commit 36b0b61

File tree

3 files changed

+131
-13
lines changed

3 files changed

+131
-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: 111 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,112 @@ $ 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+
Вы можете удалить лишнюю ветку:
120+
121+
[source,console]
122+
----
123+
$ git push origin --delete bad-branch-name
124+
----
125+
126+
Теперь старое имя ветки полностью заменено исправленным.
127+
128+
===== Изменение имени главной ветки
129+
130+
[WARNING]
131+
====
132+
Изменение имени ветки, например master/main/mainline/default, сломает интеграции, службы, вспомогательные утилиты и скрипты сборки, которые использует ваш репозиторий.
133+
Прежде чем сделать это, обязательно проконсультируйтесь с коллегами.
134+
Также убедитесь, что вы выполнили тщательный поиск в своем репо и обновили все ссылки на старое имя ветки в вашем коде или скриптах.
135+
====
136+
137+
Переименуйте локальную ветку `master` в `main` с помощью следующей команды
138+
139+
[source,console]
140+
----
141+
$ git branch --move master main
142+
----
143+
144+
Локальной ветки `master` больше нет, потому что она переименована в ветку `main`.
145+
146+
Чтобы другие могли видеть новую ветку `main`, вам нужно отправить её в общий репозиторий.
147+
Это делает переименованную ветку доступной остальным.
148+
149+
[source,console]
150+
----
151+
$ git push --set-upstream origin main
152+
----
153+
154+
Теперь мы получаем следующее состояние:
155+
156+
[source,console]
157+
----
158+
git branch --all
159+
* main
160+
remotes/origin/HEAD -> origin/master
161+
remotes/origin/main
162+
remotes/origin/master
163+
----
164+
165+
Ваша локальная ветка `master` исчезла, так как она заменена веткой `main`.
166+
Ветка `main` также доступна в общем репозитории.
167+
Но там всё ещё есть ветка `master`.
168+
Другие участники будут продолжать использовать ветку `master` в качестве основы для своей работы, пока вы не внесете в неё некоторые изменения.
169+
170+
Теперь у вас есть еще несколько задач для завершения перехода:
171+
172+
* Любые проекты, которые зависят от этого, должны будут обновить свой код и/или конфигурацию.
173+
* Обновите все файлы конфигурации средства запуска тестов.
174+
* Настройте скрипты сборки и публикации.
175+
* Поправьте настройки для таких вещей, как ветка по умолчанию, правила слияния и другие вещи, которые зависят от имён веток.
176+
* Обновите ссылки на старую ветку в документации.
177+
* Закройте или слейте любые запросы на принятие изменений, нацеленные на старую ветку.
178+
179+
После того, как вы выполнили все эти задачи и уверены, что основная ветка работает так же, как ветка `master`, вы можете удалить ветку `master`:
180+
181+
[source, console]
182+
----
183+
$ git push origin --delete master
184+
----

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)