diff --git a/src/levels/remote/fetchRebase.js b/src/levels/remote/fetchRebase.js index 3447d3a7..8b14dbc0 100644 --- a/src/levels/remote/fetchRebase.js +++ b/src/levels/remote/fetchRebase.js @@ -1034,7 +1034,7 @@ exports.level = { "markdowns": [ "## Когда наработки расходятся", "", - "Вот мы и познакомились с тем, как забирать (`pull`) чужие коммиты и как закачивать (`push`) свои нарабокт и изменения. Выглядит всё довольно просто, и не ясно какие же могу возникать у людей трудности со всем этим ?", + "Вот мы и познакомились с тем, как забирать (`pull`) чужие коммиты и как закачивать (`push`) свои наработки и изменения. Выглядит всё довольно просто, и не ясно какие же могу возникать у людей трудности со всем этим ?", "", "Сложности возникают тогда, когда история репозитория *расходится*. Давайте посмотрим на пример прежде чем идти дальше...", "" @@ -1047,7 +1047,7 @@ exports.level = { "markdowns": [ "Представьте себе, Вы склонировали репозиторий в понедельник и начали разрабатывать какую-то новую и уникальную часть приложения (на сленге разработчиков - `фича`). В пятницу вечером Вы наконец-то готовы опубликовать Вашу фичу. Но, о нет! Ваш коллега в течении недели написал кучу кода, который делает все Ваши наработки устарелыми. Этот код был также закоммичен и опубликован на общедоступном удалённом репозитории, поэтому теперь *Ваш* код базируется на *устаревшей* версии проект и более не уместен.", "", - "В этому случае использование комманды `git push` является сомнительным. Как поведёт себя комманда `git push` если Вы её выполните ? Может быть она изменит удалённый репозиторий и вернёт всё к тому состоянию, которое было в понедельник ? А может быть комманда попробует добавить Ваш код, не удаляя при этом новый? Или же она проигнорирует Ваши изменения, так как они уже устаревшие?", + "В этому случае использование комманды `git push` является сомнительным. Как поведёт себя комманда `git push` если Вы её выполните ? Может быть она изменит удалённый репозиторий и вернёт всё к тому состоянию, которое было в понедельник ? А может быть комманда попробует добавить Ваш код, не удаляя при этом новый? Или же она проигнорирует Ваши изменения, так как они уже устарели?", "", "По причине того, что в данной ситуации (когда история расходится) слишком много двусмысленностей и неопределённостей, git не даст Вам закачать (`push`) Ваши изменения. Чтобы поделится и закачать свои наработки, git будет принуждать Вас включить в состав своей работы все те последние наработки и изменения, находящиеся на удалённом репозитории." ] @@ -1057,7 +1057,7 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Слишком много болтавни! Давайте посмотрим как всё работает на деле" + "Слишком много болтавни! Давайте посмотрим, как всё работает на живом примере" ], "afterMarkdowns": [ "Видите? Ничего не произошло. Всё потому, что комманда `git push` не выполнилась успешно. Дело в том, что Ваш последний коммит `C3` основан на удалённом коммите `C1`. В свою очередь удалённый репозиторий уже изменился под воздействием `C2`. Вот почему git отклонил Ваш push." diff --git a/src/levels/remote/push.js b/src/levels/remote/push.js index 600ad31a..e26e8aac 100644 --- a/src/levels/remote/push.js +++ b/src/levels/remote/push.js @@ -326,13 +326,13 @@ exports.level = { "markdowns": [ "## Git Push", "", - "Хорошо, мы скачали изменения с удалённого репозитория и включили их в наши локальные наработки. Всё это замечатльно, но, как нам поделиться _своими_ наработками и изменениями с другими участниками проекта?", + "Хорошо, мы скачали изменения с удалённого репозитория и включили их в наши локальные наработки. Всё это замечательно, но, как нам поделиться _своими_ наработками и изменениями с другими участниками проекта?", "", "Способ, которым мы воспользуемся, является противоположным тому способу, которым мы пользовались ранее для скачивания наработок (`git pull`). Этот способ - использование комманды `git push`!", "", - "Комманда `git push` ответственна за загрузку _Ваших_ изменений в указанный удалённый репозиторий, а также включение Ваших коммитов в состав удалённого репозитория. По окончанию работы комманды `git push` все Ваши друзья смогут скачать себе все сделанные Вами наработки.", + "Комманда `git push` отвечает за загрузку _Ваших_ изменений в указанный удалённый репозиторий, а также включение Ваших коммитов в состав удалённого репозитория. По окончанию работы комманды `git push` все Ваши друзья смогут скачать себе все сделанные Вами наработки.", "", - "Вы можете рассматривать комманду `git push` как \"публикацию\" своей работы. Эта комманда хранит в себе множество тонкостей и ньюансов, с которыми мы ознакомимся в ближайшее время, а пока что давайте начнём с малого...", + "Вы можете рассматривать комманду `git push` как \"публикацию\" своей работы. Эта комманда скрывает в себе множество тонкостей и ньюансов, с которыми мы познакомимся в ближайшее время, а пока что давайте начнём с малого...", "", "*замечание -- поведение комманды `git push` без аргументов варьируется в зависимости он значения `push.default`,указанной в настройках git-а. Значение по-умолчанию зависит от версии git, которую Вы используете, однако в наших уроках мы будем использовать значение `upstream`. Лучше всегда проверят эту опцию прежде чем push-ить Ваши настоящие проекты.*" ] @@ -342,7 +342,7 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Здесь у нас имеются изменения, которых нету в удалённом репозитории. Давайте их закачаем туда!" + "Здесь у нас имеются изменения, которых нету в удалённом репозитории. Давайте же закачаем их туда!" ], "afterMarkdowns": [ "Вот так -- удалённый репозиторий получил новый коммит `C2`, ветка `master` на удалённом репозитории теперь указывает на `C2`, и наше *собственное* локальное отображение удалённого репозитория (`o/master`) изменилось соответственно. Всё синхронизировалось!" @@ -355,7 +355,7 @@ exports.level = { "type": "ModalAlert", "options": { "markdowns": [ - "Чтобы выполнить задачу этого упражнения, просто поделитесь своими двумя новыми коммитами с удалённым репозиторием. Соберитесь, потому что эти уроки будут намного сложнее предыдущих!" + "Чтобы выполнить задачу этого упражнения, просто поделитесь своими двумя новыми коммитами с удалённым репозиторием. Соберитесь, потому что все последующие уроки будут намного сложнее предыдущих!" ] } } diff --git a/src/levels/remote/pushManyFeatures.js b/src/levels/remote/pushManyFeatures.js index d10abd43..6f2b0a72 100644 --- a/src/levels/remote/pushManyFeatures.js +++ b/src/levels/remote/pushManyFeatures.js @@ -10,7 +10,8 @@ exports.level = { "pt_BR": "Lembre-se que você sempre pode usar undo ou reset", "de_DE": "Denk dran, du kannst immer undo oder reset benutzen, um deine Befehle zurück zu nehmen.", "ja" : "undoやresetコマンドをいつでも使用することができるのをお忘れなく", - "fr_FR": "Rappelez-vous que vous pouvez toujours utiliser les commandes undo et reset." + "fr_FR": "Rappelez-vous que vous pouvez toujours utiliser les commandes undo et reset.", + "ru_RU": "Помни - ты всегда можешь отменить комманды с помощью undo или reset" }, "name": { "en_US": "Push Master!", @@ -20,7 +21,8 @@ exports.level = { "pt_BR": "Push Master!", "de_DE": "Push Master!", "ja": "Push Master!", - "fr_FR": "Maître du push !" + "fr_FR": "Maître du push !", + "ru_RU": "Push Мастер!" }, "compareOnlyMasterHashAgnostic": true, "startDialog": { @@ -394,6 +396,59 @@ exports.level = { } } ] + }, + "ru_RU": { + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Слияние фича-бранчей (веток)", + "", + "Теперь, когда Вы умело владеете коммандами fetch, pull и push давайте применим эти навыки в сочетании с новым рабочим процессом (он же workflow).", + "", + "Для разработчиков, вовлечённых в большой проект, является довольно распространённым выполнять всё свою работу на так называемых фича-бранчах (вне `master`). А затем, как только работа выполнена, разработчик интегрирует всё что было им сделано. Всё это, за исключением одного шага, довольно похоже на предыдущий урок (там, где мы закачивали ветки на удалённый репозиторий)", + "", + "Ряд разработчиков делают push и pull лишь на локальную ветку `master` -- таким образом ветка `master` всегда обновлена с тем, что находится на удалённом репозитории (`o/master`).", + "", + "Для этого рабочего процесса мы совместили две вещи:", + "", + "* интеграция фича-бранчей в `master`, а также ", + "* закачку (push) и скачку (pull) с удалённого репозитория" + ] + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Давайте быстренько вспомним, как нам обновить `master` и закачать выполненную работу." + ], + "afterMarkdowns": [ + "Здесь мы выполнили две комманды, которые:", + "", + "* перебазировали нашу работу на новенький коммит, пришедший с удалённого репозитория, и", + "* закачали свои наработки в удалённый репозиторий" + ], + "command": "git pull --rebase; git push", + "beforeCommand": "git clone; git commit; git fakeTeamwork" + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Текущая задача является достаточно обильной -- здесь представлена общая схема выполнения:", + "", + "* Есть три фича-бранчи (фича-ветки) -- `side1` `side2` и `side3`", + "* Нам необходимо закачать каждую из них по очереди на удалённый репозиторий", + "* При этом удалённый репозиторий хранит в себе какие-то наработки, которые также следует скачать к себе", + "", + ":O Сложно! Желаю Вам удачи в выполнении этой непростой задачи." + ] + } + } + ] } } };