You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/06-github/sections/2-contributing.asc
+68-6Lines changed: 68 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,12 +36,14 @@ GitHub разработан с прицелом на определённый р
36
36
37
37
Вот как это обычно работает:
38
38
39
-
1. Создайте тематическую ветку от ветки `master`.
40
-
2. Зафиксируйте несколько изменений, улучшающих проект.
41
-
3. Отправьте эту ветку на GitHub.
42
-
4. Откройте запрос на слияние на GitHub.
43
-
5. Обсуждайте его, вносите изменения, если нужно.
44
-
6. Владелец проекта принимает решение о принятии изменений, либо об их отклонении.
39
+
1. Создайте форк проекта.
40
+
2. Создайте тематическую ветку на основании ветки `master`.
41
+
3. Создайте один или несколько коммитов с изменениями, улучшающих проект.
42
+
4. Отправьте эту ветку в ваш проект на GitHub.
43
+
5. Откройте запрос на слияние на GitHub.
44
+
6. Обсуждайте его, вносите изменения, если нужно.
45
+
7. Владелец проекта принимает решение о принятии изменений, либо об их отклонении.
46
+
8. Получите обновлённую ветку `master` и отправьте её в свой форк.
45
47
46
48
Очень напоминает подход, описанный в главе <<ch05-distributed-git#r_integration_manager>>, но вместо использования электронной почты, команда сотрудничает через веб-интерфейс.
Если вернуться немного назад к <<r_pr_references>>, то над областью редактирования вы увидите небольшую подсказку ``Parsed as Markdown''.
479
481
Нажав не неё, вы получите полную подсказку по использованию GitHub разметки.
482
+
483
+
[[r_fetch_and_push_on_different_repositories]]
484
+
==== Поддержание GitHub репозитория в актуальном состоянии
485
+
486
+
После создания форка, ваш репозиторий будет существаовать независимо от оригинального репозитория.
487
+
В частности, при появлении в оригинальном репозитории новых коммитов GitHub информирует вас при помощи сообщения:
488
+
489
+
[source,text]
490
+
----
491
+
This branch is 5 commits behind progit:master.
492
+
----
493
+
494
+
При этом GitHub никогда не обновляет ваш репозиторий -- это вы должны делать сами.
495
+
К счастью, это очень просто сделать.
496
+
497
+
Первый способ не требует конфигурации.
498
+
Например, если вы сделали форк репозитория `https://github.com/progit/progit2.git`, то обновить ветку `master` можно следующим образом:
<1> Добавить исходный репозиторий как удалённый с другим именем.
522
+
Здесь выбрано имя `progit`.
523
+
<2> Настроить локальную ветку `master` на получение изменений из удалённого репозитория `progit`.
524
+
<3> Установить `origin` как репозиторий по умолчанию для отправки.
525
+
526
+
После этого, процесс обновления становится гораздо проще:
527
+
528
+
[source,console]
529
+
----
530
+
$ git checkout master <1>
531
+
$ git pull <2>
532
+
$ git push <3>
533
+
----
534
+
535
+
<1> Если вы находитесь на другой ветке -- перейти на `master`.
536
+
<2> Получить изменения из `progit` и слить их с веткой `master`.
537
+
<3> Отправить локальную ветку `master` в ваш форк `origin`.
538
+
539
+
Данный подход не лишён недостатков.
540
+
Git будет молча выполнять указанные действия и не предупредит вас в случае, когда вы добавили коммит в `master`, получили изменения из `progit` и отправили всё вместе в `origin` -- все эти операции абсолютно корректны.
541
+
Поэтому вам стоит исключить прямое добавление коммитов в ветку `master`, поскольку эта ветка фактически принадлежит другому репозиторию.
0 commit comments