diff --git a/src/levels/rampup/relativeRefs.js b/src/levels/rampup/relativeRefs.js index 5ab7c732..1cf75fbb 100644 --- a/src/levels/rampup/relativeRefs.js +++ b/src/levels/rampup/relativeRefs.js @@ -660,7 +660,7 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Для начала рассмотрим оператор каретки (^). Когда мы добавляем его к имени ссылки, Git поспринимает это как указание найти родителя указанного коммита.", + "Для начала рассмотрим оператор каретки (^). Когда мы добавляем его к имени ссылки, Git воспринимает это как указание найти родителя указанного коммита.", "", "Так что `master^` означает \"первый предок ветки `master`\".", "", diff --git a/src/levels/remote/fetchArgs.js b/src/levels/remote/fetchArgs.js index 306fcbec..cbb14473 100644 --- a/src/levels/remote/fetchArgs.js +++ b/src/levels/remote/fetchArgs.js @@ -10,7 +10,8 @@ exports.level = { "es_AR": "Parámetros de fetch", "pt_BR": "Parâmetros do fetch", "de_DE": "Optionen für Fetch", - "ja" : "Fetchの引数" + "ja" : "Fetchの引数", + "ru_RU": "Аргументы для fetch" }, "hint": { "en_US": "Pay attention how the commit ids may have swapped! You can read slides again with \"help level\"", @@ -20,7 +21,8 @@ exports.level = { "es_AR": "¡Prestá atención a cómo podrían haberse invertido los ids de los commits! Podés volver a leer toda la lección usando \"help level\"", "pt_BR": "Preste atenção em como os identificadores dos commits podem ter trocado! Você pode ler os slides novamente com \"help level\"", "de_DE": "Beachte wie die Commit IDs getauscht wurden! Du kannst den Einführungsdialog mit \"help level\" erneut anzeigen", - "ja" : "コミットIDの入れ替わりに注意!スライドを復習するには`help level`を実行" + "ja" : "コミットIDの入れ替わりに注意!スライドを復習するには`help level`を実行", + "ru_RU": "Обратите внимание на то, как номера коммитов могут меняться! Вы можете прочесть слайды вновь, воспользовавшись командой \"help level\"" }, "startDialog": { "en_US": { @@ -883,6 +885,129 @@ exports.level = { } } ] + }, + "ru_RU": { + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Аргументы git fetch", + "", + "Итак, мы только что изучили всё, касательно аргументов git push, мы узнали о параметре `<пункт назначения>`, и даже об аргументе, задающем отдельно исчтояник и получатель коммитов (`<источник>:<получатель>`). Можем ли мы применить все эти полученные знания для команды `git fetch` ?", + "", + "Ещё бы! Аргументы для команды `git fetch` на самом деле *очень, очень* похожи на те, что мы использовали в `git push`. В данном случае используется тот же подход, только применяемый в противоположном направлении (так как теперь Вы скачиваете коммиты, а не закачиваете их).", + "", + "Давайте ознакомимся с принципами один за одним..." + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "### Параметр `<пункт назначения>`", + "", + "Если Вы указываете пункт назначения в команде git fetch, например так, как в следующем примере:", + "", + "`git fetch origin foo`", + "", + "Git отправится в ветку `foo` на удалённом репозитории, соберёт с собой все коммиты, которые не присутствуют локально, и затем поместит их в локальную ветку под названием `o/foo`.", + "", + "Давайте взглянем на всё это в действии (чтобы освежить в памяти)." + ] + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Указывая пункт назначения..." + ], + "afterMarkdowns": [ + "мы скачиваем только коммиты с ветки `foo` и помещаем их в `o/foo`" + ], + "command": "git fetch origin foo", + "beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2" + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Вы, должно быть, спрашиваете себя -- зачем git поместил эти коммиты в ветку `o/foo` вместо того, чтобы разместить из в локальной ветке `foo` ? Ведь я думал о параметре `<пункт назначения>`, как о месте, ветке, которая существует в обоих - локальном и удалённом репозитории. Верно ?", + "", + "На самом деле, в данном случае git делает исключение, потому что Вы, возможно, работаете над веткой `foo`, которую не хотите привести в беспорядок!! Об этом упоминалось в ранних уроках по `git fetch` -- эта комманда не обновляет Ваши локальные 'не удалённые', она лишь скачивает коммиты (соответственно, Вы можете инспектировать / объединять их позже).", + "" + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "\"Что же тогда произойдёт, если я явно укажу оба параметра: и источник и получатель, пользуясь синтаксисом `<источник>:<получатель>` ?\"", + "", + "Если Вы уверенны в том, что хотите закачать коммиты *прямиком* в Вашу локальную ветку, тогда да, Вы можете явно указать источник и получатель через двоеточние. Вы можете воспользоваться таким приёмом лишь для ветки, на которой Вы не находитесь в настоящий момент `checkout`.", + "", + "Тепер у нас `<источник>` - это место на *удалённом репозитории*, а `<получатель>` - место в *локальном* репозитории, в который соедует помещать коммиты. Аргументы в точности да наоборот повторяют git push, и не мудрено, ведь теперь мы переносим данные в обратном направлении!", + "", + "Как уже было сказано, разработчики редко используют такой подход на практике. Целью демонстрации такой возможности было показать на сколько сходи концептуально `fetch` и `push`. Их отличие лишь в направлении переноса данных." + ] + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "Давайте взглянем на всё это в действии:" + ], + "afterMarkdowns": [ + "Ого! Видите, git распознал `foo~1` как место в origin и затем скачал эти коммиты в `bar`, которая является локальной веткой. Обратите внимание, что ветки `foo` и `o/foo` не изменились, так как в аргументах мы явно указали получателя." + ], + "command": "git fetch origin foo~1:bar", + "beforeCommand": "git branch foo; git clone; git branch bar; git fakeTeamwork foo 2" + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "А что, если ветка-получатель не существует на момент запуска команды? Давайте ещё раз взглянем на предыдущий слайд, но на этот раз ветки `bar` ещё не существует." + ], + "afterMarkdowns": [ + "Видите, поведение совсем такое же как и у git push. Git создал ветку-получатель локально прежде чем скачивать данные. Всё совсем также как и в случае, когда git создаёт получателя в удалённом репозитории, когда мы закачиваем изменения (если получатель не существует)." + ], + "command": "git fetch origin foo~1:bar", + "beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2" + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "А если вообще без аргументов ?", + "", + "Если комманда `git fetch` выполняется без аргументов, она скачивает все-все коммиты с удалённого репозитория и помещает их в соответствующие удалённо-локальные ветки в локальном репозитории..." + ], + "afterMarkdowns": [ + "Достаточно просто, после того как мы пережили все эти технические тонкости." + ], + "command": "git fetch", + "beforeCommand": "git branch foo; git clone; git fakeTeamwork foo; git fakeTeamwork master" + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Ладно, достаточно болтавни! Чтобы выполнить этот уровень, скачайте лишь определённые коммиты так, как представлено в визуализации цели. Пофантазируйте с этими командами!", + "", + "Вам следует явно указывать источник и получатель для обеих команд fetch. Обратите внимание на визуализацию цели, так как ID-шники могут меняться!" + ] + } + } + ] } } }; diff --git a/src/levels/remote/pushArgs.js b/src/levels/remote/pushArgs.js index d552bf95..f88d77bd 100644 --- a/src/levels/remote/pushArgs.js +++ b/src/levels/remote/pushArgs.js @@ -555,7 +555,7 @@ exports.level = { "type": "ModalAlert", "options": { "markdowns": [ - "Что за такой параметр `<целевая_ветка>`? Мы узнаем об этом через секунду, а пока что рассмотрим пример. Допустим, у мы выполняем такую команду:", + "Что за такой параметр `<целевая_ветка>`? Мы узнаем об этом через секунду, а пока что рассмотрим пример. Допустим, что мы выполняем такую команду:", "", "`git push origin master`", "", diff --git a/src/levels/remote/pushArgs2.js b/src/levels/remote/pushArgs2.js index c25b73ac..eeb0260f 100644 --- a/src/levels/remote/pushArgs2.js +++ b/src/levels/remote/pushArgs2.js @@ -521,7 +521,7 @@ exports.level = { "type": "ModalAlert", "options": { "markdowns": [ - "## Подробности аргумента ``", + "## Подробности аргумента `<пункт назначения>`", "", "Помните, когда в прошлом занятии мы указали в качестве аргумента ветку `master` для команды git push, мы указали совместно *источник* откуда будут приходить коммиты и *пункт назначения (получатель)*, куда коммиты будут уходить.", "", @@ -537,7 +537,7 @@ exports.level = { "type": "ModalAlert", "options": { "markdowns": [ - "В том случае, когда Вам необходимо разделить источник и получатель аргумента ``, просто соедините их вместе, используя двоеточие:", + "В том случае, когда Вам необходимо разделить источник и получатель аргумента `<пункт назначения>`, просто соедините их вместе, используя двоеточие:", "", "`git push origin <источник>:<получатель>`", "",