diff --git a/src/levels/intro/commits.js b/src/levels/intro/commits.js index fe290ce6..47de7043 100644 --- a/src/levels/intro/commits.js +++ b/src/levels/intro/commits.js @@ -101,7 +101,7 @@ exports.level = { "type": "GitDemonstrationView", "options": { "beforeMarkdowns": [ - "Mal sehen wie das in der Praxis ist. Rechts sehen wir ein (kleines) Git-Repository. Es gibt akutell zwei Commits -- den initialen, `C0`, und den danach, `C1`, der irgendwelche Änderungen enthält.", + "Mal sehen wie das in der Praxis ist. Rechts sehen wir ein (kleines) Git-Repository. Es gibt aktuell zwei Commits -- den initialen, `C0`, und den danach, `C1`, der irgendwelche Änderungen enthält.", "", "Klick die Schaltfläche unten um einen neuen Commit zu erzeugen:" ], diff --git a/src/levels/remote/lockedMaster.js b/src/levels/remote/lockedMaster.js index fd27a985..d2b736a5 100644 --- a/src/levels/remote/lockedMaster.js +++ b/src/levels/remote/lockedMaster.js @@ -4,10 +4,12 @@ exports.level = { "startTree": "{\"branches\":{\"master\":{\"target\":\"C2\",\"id\":\"master\",\"remoteTrackingBranchID\":\"o/master\"},\"o/master\":{\"target\":\"C1\",\"id\":\"o/master\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"}},\"tags\":{},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"},\"originTree\":{\"branches\":{\"master\":{\"target\":\"C1\",\"id\":\"master\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"}},\"tags\":{},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}}", "hint": { "en_US": "Make the feature branch from the local master before resetting it back to be the same as origin's master", + "ru_RU": "Создайте новую feature ветвь от master перед тем, как откатить изменения в master до состояния o/master.", "zh_CN": "从本地的master创建一个feature分支, 然后重置master和origin master保持一致。" }, "name": { "en_US": "Locked Master", + "ru_RU": "Заблокированная ветвь master", "zh_CN": "锁定的Master(Locked Master)" }, "startDialog": { @@ -51,9 +53,8 @@ exports.level = { } ] }, - "zh_CN": { - "childViews": [ + "childViews": [ { "type": "ModalAlert", "options": { @@ -91,6 +92,50 @@ exports.level = { } } ] + }, + "ru_RU": { + "childViews": [ + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Remote Rejected!", + "", + "Когда вы работаете в составе большой команды разработчиков над проектом, то, вероятнее всего, ветвь `master` будет _заблокирована_. Для внесения изменений в неё в git существует понятие запроса на слияние `Pull Request`. В такой ситуации если вы закоммитите свои наработки непосредственно в `master` ветвь, а после выполните `git push`, то будет сгенерировано сообщение об ошибке:", + "", + "```", + " ! [remote rejected] master -> master (TF402455: Pushes to this branch are not permitted; you must use a pull request to update this branch.)", + "```", + "", + "```", + " ! [удалённо отклонено] master -> master (TF402455: Изменение этой ветви запрещены; вы можете использовать pull request для обновления этой ветви.)", + "```" + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": [ + "## Почему произошло отклонение моих изменений?", + "", + "Удалённый репозиторий отклонил загруженные коммиты непосредственно в `master` ветку потому, что на `master` _настроена политика_, которая требует использование `Pull request` вместо обычного `git push`.", + "", + "Эта политика подразумевает процесс создания новой ветви разработки, внесение в неё всех необходимых коммитов, загрузка изменений в удалённый репозиторий и _открытие нового_ `Pull request`. Однако вы забыли про это и закоммитили наработки непосредственно в `master` ветвь. Теперь вы застряли и не можете запушить свои изменения :(. " + ] + } + }, + { + "type": "ModalAlert", + "options": { + "markdowns": + "## Решение:", + "", + "Создайте ещё одну ветвь под названием `feature` и отправьте изменения на удалённый репозиторий. Так же не забудьте вернуть вашу локальную `master` ветвь в исходное состояние (чтобы она была синхронизирована с удалённой). В противном случае у вас могут возникнуть проблемы при следующем выполнении `git pull`." + ] + } + } + ] } } };