From 5a149daa1c29d2c6112d74a39e1d6faa945007b6 Mon Sep 17 00:00:00 2001 From: CoylOne Date: Sun, 12 Apr 2015 17:59:17 +0300 Subject: [PATCH] interactive rebase translated --- src/levels/rampup/interactiveRebase.js | 71 +++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/src/levels/rampup/interactiveRebase.js b/src/levels/rampup/interactiveRebase.js index 06773b0e..794897ec 100644 --- a/src/levels/rampup/interactiveRebase.js +++ b/src/levels/rampup/interactiveRebase.js @@ -13,7 +13,8 @@ exports.level = { "de_DE": "Du kannst entweder Branches oder relative Ref-Angaben (z.B. HEAD~) benutzen, um das Ziel des Rebase anzugeben.", "fr_FR": "Vous pouvez utiliser soit les branches, soit les références relatives (HEAD~) pour spéficier la cible à rebaser", "zh_CN": "你可以使用 branch 或者是相对位置(HEAD~)來指定 rebase 的目标", - "zh_TW": "你可以指定 branch 或者是相對位置(HEAD~)來表示 rebase 的目標" + "zh_TW": "你可以指定 branch 或者是相對位置(HEAD~)來表示 rebase 的目標", + "ru_RU": "Можно использовать либо ветки, либо относительные ссылки (HEAD~), чтобы указать цель для Rebase" }, "name": { "en_US": "Interactive Rebase Intro", @@ -23,7 +24,8 @@ exports.level = { "ja" : "インタラクティブrebase入門", "fr_FR": "Introduction à rebase", "zh_CN": "Rebase 交互命令介绍 ", - "zh_TW": "介紹互動式的 rebase" + "zh_TW": "介紹互動式的 rebase", + "ru_RU": "Введение в интерактивный Rebase" }, "startDialog": { "en_US": { @@ -545,6 +547,71 @@ exports.level = { } } ] + }, + "ru_RU": { + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Git Interactive Rebase", + "", + "Git cherry-pick прекрасен, когда точно извесно, какие коммиты нужны (и известны их точные хеши)", + "", + "Но как быть в случае, когда точно не известно какие коммиты нужны? К счастью, Git позаботился о таких ситуациях! Можно использовать интерактивный rebase для этого -- лучший способ, чтобы отобрать набор коммитов для rebase.", + "", + "Углубимся в детали." + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Всё, что нужно для интерактивного rebase - это опция -i", + "", + "Если добавить эту опцию, Git откроет интерфейс просмотра того, какие коммиты готовы к копированию на цель rabse (target). Также показываются хеши коммитов и комментарии к ним, так что можно легко понять что к чему.", + "", + "Для \"реального\" Git, этот интерфейс означает просто открытие файла в редакторе типа vim. Для этой обучалки, я сделал небольшое диалоговое окно, которое по сути делает то же, что и редактор." + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "После открытия окна интерактивного rebase, есть три варианта для каждого коммита:", + "", + "* Можно сменить положение коммита по порядку, просто переставив строчку с ним в редакторе (у нас в окоше строку с коммитом можно перенести просто мышкой).", + "* Можно \"выкинуть\" коммит из ребейза. Для этого есть pick -- переключение его означает, что нужно выкинуть коммит.", + "* Наконец, можно соединить коммиты. В этом уровне игры у нас не реализована эта возможность, но, если кратко -- при помощи этой функции можно объедниять изменения двух коммитов.", + "", + "Ну что ж, посмотрим на примеры!" + ] + } + }, + { + "type": "GitDemonstrationView", + "options": { + "beforeMarkdowns": [ + "После нажатия на эту кнопку, появится окно интерактивного rebase. Переставь несколько коммитов (или удали кое-какие) и посмотри, что получится в итоге!" + ], + "afterMarkdowns": [ + "Бах! Git скопировал коммиты в точности как было указано через интрефейс!" + ], + "command": "git rebase -i HEAD~4 --aboveAll", + "beforeCommand": "git commit; git commit; git commit; git commit" + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "Чтобы пройти этот уровень, переставь коммиты в таком порядке, как указано на визуализации при помощи интерактивного rebase. На всякий случай, помни, что всегда можно исправить ошибку, вызвав команду undo или reset." + ] + } + } + ] } } };