Ukrainian translation fix.

This commit is contained in:
Maksym Kobieliev 2016-11-12 12:34:29 +02:00 committed by Maximaximum
parent 2cc443b37f
commit 5e4acf1b55
28 changed files with 174 additions and 174 deletions

View file

@ -176,13 +176,13 @@ exports.dialog = {
type: 'ModalAlert',
options: {
markdowns: [
'## Ласкаво просимо до конструктору рівнів!',
'## Ласкаво просимо до конструктора рівнів!',
'',
'Ось основні кроки:',
'',
' * Налаштувати початкове середовище за допомогою команд git',
' * Визначити стартове дерево за допомогою ```define start```',
' * Ввести набір команд що описують (оптимальний) розв’язок',
' * Ввести набір команд, що описують (оптимальний) розв’язок',
' * Визначити кінцеве дерево за допомогою ```define goal```. Одночасно це визначить розв’язок',
' * Додатково можна задати підказку за допомогою ```define hint```',
' * Редагувати назву рівня за допомогою ```define name```',

View file

@ -517,7 +517,7 @@ exports.dialog = {
'',
'Хочеш вивчити Git? Тоді ти знайшов те, що шукав!',
'"Learn Git Branching" \u2014 це найбільш візуальний та інтерактивний спосіб вивчення Git в Інтернеті. ',
'Ти зможеш проходити захоплюючі рівні, дивитися ',
'Ти зможеш проходити захопливі рівні, дивитися ',
'покрокові інструкції з використання потужних функцій Git, навіть трохи ',
'розважитись в процесі навчання.',
'',

View file

@ -26,7 +26,7 @@ exports.strings = {
'pt_BR': 'Você gostaria de ir para o próximo nível: *"{nextLevel}"*?',
'fr_FR': 'Voulez-vous passer à *"{nextLevel}"*, le prochain niveau ?',
'ru_RU': 'Хотите перейти на следующий уровень: *"{nextLevel}"*?',
'uk': 'Хочеш перейти на наступний рівень: *"{nextLevel}"*?',
'uk': 'Хочеш перейти на наступний рівень -- *"{nextLevel}"*?',
'ko': '다음 레벨로 넘어갈까요? 레벨 *"{nextLevel}"*'
},
///////////////////////////////////////////////////////////////////////////
@ -41,7 +41,7 @@ exports.strings = {
'es_AR': '¡Fabuloso! Igualaste o superaste nuestra solución.',
'fr_FR': 'Fabuleux ! Votre solution a égalé ou surpassé notre solution.',
'ru_RU': 'Отлично! Ваше решение соответствует или превосходит наше.',
'uk': 'Чудово! Твій розв’язок на рівні або краще від нашого.',
'uk': 'Чудово! Твій розв’язок на рівні або кращий від нашого.',
'ko': '멋져요! 우리의 해답과 일치하거나 우리보다 좀 더 나은 해답입니다.'
},
///////////////////////////////////////////////////////////////////////////
@ -56,7 +56,7 @@ exports.strings = {
'pt_BR': 'Veja se consegue reduzir para somente {best} :D',
'fr_FR': 'Voyons si vous pouvez descendre à {best} :D',
'ru_RU': 'Попробуйте, может вы сможете уложиться в {best} : D',
'uk': 'Спробуй, можливо ти зможете вкластися в {best} кроків :D',
'uk': 'Спробуй, можливо ти зможеш вкластися в {best} кроків :D',
'ko': '{best}회로 줄일 수 있다면 해보세요. :D'
},
///////////////////////////////////////////////////////////////////////////
@ -222,7 +222,7 @@ exports.strings = {
'pt_BR': 'O repositório remoto divergiu do repositório local, então enviar suas mudanças não é um simples fast forward (e por isso seu push foi rejeitado). Por favor, faça pull das novas mudanças do repositório remoto, incorpore-os a este ramo, e tente novamente. Você pode fazê-lo com git pull ou git pull --rebase',
'fr_FR': 'Le dépôt distant a divergé de votre référentiel local, donc l\'envoi de vos modifications n\'est pas en simple avance rapide (et donc votre envoi a été rejeté). Veuillez récupérer les nouveaux changements depuis le dépôt distant, les intégrer dans cette branche, et essayez à nouveau. Vous pouvez le faire avec git pull ou git pull --rebase',
'ru_RU': 'Удаленный репозиторий разошелся с вашим локальным репозиторием, поэтому выгрузка ваших изменений не может быть в режиме fast forward (и следовательно ваш push будет отклонён). Пожалуйста, удалите изменения в удаленном репозитории которые, объедините их в эту ветку и попробуйте еще раз. Вы можете сделать это с помощью git pull или git pull --rebase',
'uk': 'Віддалений репозиторій розбігся з твоїм локальным репозиторієм, тому відвантаження твоїх змін не є простим fast forward (й тому твій push був відхилений). Будь-ласка, витягни зміни з віддаленого репозиторію, включи їх в цю гілку, й спробуй ще. Ти можеш зробити це за допомогою git pull чи git pull --rebase',
'uk': 'Віддалений репозиторій розбігся з твоїм локальним репозиторієм, тому відвантаження твоїх змін не є простим fast forward (і тому твій push був відхилений). Будь-ласка, витягни зміни з віддаленого репозиторію, включи їх в цю гілку, й спробуй ще. Ти можеш зробити це за допомогою git pull чи git pull --rebase',
'ko': '원격 레포지토리가 당신의 로컬 레포지토리에서 분기하므로, 변경 사항을 업데이트 하는것은 간단한 fast forward가 아닙니다(따라서 push가 거절될 것입니다.). 원격 레포지토리에서의 변경 사항을 내려 받아 이 브랜치에 합쳐라. 그리고 이걸 반복하라. 당신은 git pull 또는 git pull --rebase를 사용해 이를 수행할 수 있다.'
},
'git-error-remote-branch': {

View file

@ -907,13 +907,13 @@ exports.level = {
"markdowns": [
"### Вибираємо Попередників",
"",
"Так само як модифікатор `~`, модифікатор `^` також приймає необов’язкове число після нього.",
"Так само як і модифікатор `~`, модифікатор `^` також приймає необов’язкове число після нього.",
"",
"Замість того, щоб вказувати кількість генерацій щоб переміститись назад (те що робить `~`), число після `^` вказує на яке батьківське посилання мерджу потрібно перейти. Зауважте що так як мерджевий коміт має декілька батьків, використання '^' без числа є неоднозначним.",
"",
"Git зазвичай перейде на \"першого\" з батьків вверх з мерджевого коміту, але вказання числа після `^` змінює цю поведінку. ",
"",
"Досить розмов, давайте перевіримо як це працює на дії.",
"Годі ляси точити, перевірмо як це працює в дії.",
""
]
}
@ -937,7 +937,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Тепер спробуємо натомість вказати другого батька..."
"Тепер спробуймо натомість вказати другого батька..."
],
"afterMarkdowns": [
"Бачиш? Ми перейшли до другого батька вверх."
@ -950,7 +950,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Модифікатори `^` та `~` дозволяють легко переміщатись по дереву комітів:"
"Модифікатори `^` та `~` дозволяють легко пересуватися деревом комітів:"
],
"afterMarkdowns": [
"Супер швидко!"
@ -966,7 +966,7 @@ exports.level = {
"Більше того, ці модифікатори можна використовувати разом! Заціни:"
],
"afterMarkdowns": [
"Те саме, що й перед цим, але одною командою."
"Те саме, що й перед цим, але однією командою."
],
"command": "git checkout HEAD~^2~2",
"beforeCommand": "git commit; git checkout C0; git commit; git commit; git commit; git checkout master; git merge C5; git commit"
@ -980,7 +980,7 @@ exports.level = {
"",
"Щоб завершити цей рівень, створи нову гілку на вказаному місці.",
"",
"Очевидно, що в данному випадку досить легко вказати коміт напряму (щось на зразок checkout `C6`), але для закріплення матеріалу, використай модифікатори про які ми щойно говорили!"
"Очевидно, що в данному випадку досить легко вказати коміт напряму (щось на зразок checkout `C6`), але для закріплення матеріалу використай модифікатори, про які ми щойно говорили!"
]
}
}

View file

@ -667,7 +667,7 @@
"markdowns": [
"### Git Describe",
"",
"Через те що таги є такими чудовими \"орієнтирами\" по коду, git також має команду *описати* (describe) де ти є відносно найближчого \"орієнтира\" (тобто тага). Й ця команда називається `git describe`!",
"Через те, що таги є такими чудовими \"орієнтирами\" по коду, git також має команду *описати* (describe) де ти є відносно найближчого \"орієнтира\" (тобто тага). І ця команда називається `git describe`!",
"",
"Git describe допоможе тобі знайти себе після того як ти перестрибнеш на кілька комітів по історії вперед чи назад; це може статися після того як ти закінчив git bisect (пошук-дебаггер) чи коли тебе попросили підійти до колеги, котрий щойно прийшов з відпустки."
]
@ -681,13 +681,13 @@
"",
"`git describe <посилання>`",
"",
"Де `<посилання>` це що завгодно що вказує на конкретний коміт. Якщо ти не вкажеш посилання, git використає поточну локацію (`HEAD`).",
"Де `<посилання>` -- це будь-що, що вказує на конкретний коміт. Якщо ти не вкажеш посилання, git використає поточну локацію (`HEAD`).",
"",
"Вивід команди виглядає як:",
"",
"`<таг>_<к-ть комітів>_g<хеш>`",
"",
"де `таг` це найближчий попередній таг з історії, `к-ть комітів` це на скільки далеко цей таг в історії, а `<хеш>` це хеш коміту який описується."
"де `таг` -- це найближчий попередній таг з історії; `к-ть комітів` -- це наскільки далеко цей таг в історії, а `<хеш>` -- це хеш коміту, який описується."
]
}
},
@ -695,7 +695,7 @@
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Розглянемо короткий приклад. Для дерева нижче:"
"Розгляньмо короткий приклад. Для дерева нижче:"
],
"afterMarkdowns": [
"Команда `git describe master` виведе:",

View file

@ -24,7 +24,7 @@ exports.level = {
"zh_CN": "只取一个 commit",
"zh_TW": "只取一個 commit",
"ru_RU": "Выберем один коммит.",
"uk": "Вибираємо всоьго один коміт."
"uk": "Вибираємо всього один коміт"
},
"hint": {
"en_US": "Remember, interactive rebase or cherry-pick is your friend here",
@ -440,11 +440,11 @@ exports.level = {
"markdowns": [
"## Локально складені коміти",
"",
"Ось ситуація з життя рядового програміста: я намагаюся відслідкувати баг але це не завжди вдається. Щоб допомогти собі, я додаю кілька дебаг команд та ще кілька println'ів.",
"Ось ситуація з життя рядового програміста: я намагаюся відслідкувати баг, але це не завжди вдається. Щоб допомогти собі, я додаю кілька дебаг-команд та ще кілька println'ів.",
"",
"Всі ці команди для відлагодження та виводу данних знаходяться в своїх власних комітах. Врешті-решт я знаходжу баг, фікшу його та щиро радію!",
"",
"От тільки лишається проблема що потрібно мій фікс перенести з `bugFix` назад в гілку `master`. Якщо я просто зроблю фастфорвард (fast-forwarded) в `master`, тоді в `master` попадуть всі мої println'и, що є зайвим. Має бути інший шлях..."
"От тільки лишається проблема, що потрібно мій фікс перенести з `bugFix` назад в гілку `master`. Якщо я просто зроблю фастфорвард (fast-forwarded) в `master`, тоді в `master` потраплять всі мої println'и, що є зайвим. Має бути інший шлях..."
]
}
},
@ -452,7 +452,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Ми маємо сказати гіту скопіювати лише один коміт. Це все те ж саме що в попередніх рівнях, й ми можемо використати ті ж самі команди:",
"Ми маємо сказати гіту скопіювати лише один коміт. Це все те ж саме, що й у попередніх рівнях, і ми можемо використати ті ж самі команди:",
"",
"* `git rebase -i`",
"* `git cherry-pick`",

View file

@ -410,10 +410,10 @@ exports.level = {
"* Тоді ми відсортуємо коміти в попередньому порядку, за допомогою `git rebase -i`",
"* І на останок, ми пересунемо master на змінену частину дерева щоб закінчити цей рівень(ти можеш вибрати метод)",
"",
"Насправді є кілька способів як виконати поставлену задачу (Я бачу ти поглядаєш на cherry-pick), і ми розберемося з ними всіма трохи пізніше, але зараз, давай, скористаємося цим методом.",
"Зверни увагу на фінальний стан в цьому рівні -- так як ми перемістили коміти двічі, кожен з них отримає по апострофу. Ще один апостроф додастся коли ми виконаємо commit --amend.",
"Насправді є кілька способів як виконати поставлену задачу (Я бачу, ти поглядаєш на cherry-pick), і ми розберемося з ними всіма трохи пізніше, але зараз скористаймося саме цим методом.",
"Зверни увагу на фінальний стан в цьому рівні -- позаяк ми перемістили коміти двічі, кожен з них отримає по апострофу. Ще один апостроф додасться коли ми виконаємо commit --amend.",
"",
"Враховуючи сказане вище, я буду порівнювати дерево як по назві коміта так і за кількістю апострофів. Як тільки дерево цілей та master співпадуть, ти пройдеш цей рівень."
"Враховуючи сказане вище, я буду порівнювати дерево як за назвою коміта, так і за кількістю апострофів. Щойно дерево цілей та master співпадуть, ти пройдеш цей рівень."
]
}
}

View file

@ -475,9 +475,9 @@ exports.level = {
"",
"*Якщо ти ще не пройшов Жонглюємо комітами #1 (попередній рівень), будь ласка, зроби це перед тим як продовжити*",
"",
"Як ти бачив в попередньому рівні, ми використали `rebase -i` щоб впорядкувати набір комітів. Як тільки потрібний коміт опиняється на горі його досить легко змінити за допомогою --amend й потім відсортувати коміти в попередньому порядку.",
"Як ти бачив в попередньому рівні, ми використали `rebase -i` щоб впорядкувати набір комітів. Як тільки потрібний коміт опиняється вгорі, його досить легко змінити за допомогою --amend й потім відсортувати коміти в попередньому порядку.",
"",
"Єдина проблема з таким підходом, що виконується досить багато перестановок комітів, що може призвести до конфліктів при виконанні rebase. Давайте спробуємо інший підхід який використовує `git cherry-pick`"
"Єдина проблема з таким підходом полягає в тому, що виконується досить багато перестановок комітів, що може призвести до конфліктів при виконанні rebase. Спробуймо інший підхід який використовує `git cherry-pick`"
]
}
},
@ -500,7 +500,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Отже в цьому рівні, давайте досягнемо тієї ж мети модифікації `C2` але не використовуючи `rebase -i`. Я думаю ти розберешся як це зробити! :D",
"Отже, в цьому рівні досягнімо тієї ж мети -- модифікації `C2` -- але без використання `rebase -i`. Я думаю, ти розберешся як це зробити! :D",
"",
"Зверни увагу, що точне число апострофів (') в коміті не важливе, важлива тільки відносна різниця. Наприклад, якщо кожен коміт буде містити додатковий апостроф, я все одно зарахую такий розв’язок."
]

View file

@ -557,7 +557,7 @@
"markdowns": [
"## Таги в Git",
"",
"Як ти вже знаєш з попередніх уроків, гілки досить просто переносити в інші місця і вони постійно вказують на різні коміти в процесі того як ті в них додаються. Гілки легко модифікувати, часто тимчасово, й вони постійно змінюються.",
"Як ти вже знаєш з попередніх уроків, гілки досить просто переносити в інші місця, і вони постійно вказують на різні коміти в процесі того? як ті в них додаються. Гілки легко модифікувати, часто тимчасово, й вони постійно змінюються.",
"",
"В такому разі, де взяти *постійне* посилання на момент в історії твого проекту? Для таких речей як релізи чи великі мерджі потрібно щось більш стале ніж гілка.",
""
@ -570,9 +570,9 @@
"markdowns": [
"Є один спосіб! Таги в гіт якраз для цього й були створені -- вони (більш-менш) постійно вказують на певні коміти, й відмічають певні \"віхи\" в житті проекту, на які ти можеш потім посилатись так само як на гілки.",
"",
"Але що важливіше, вони ніколи не переміщуються коли створюються нові коміти. Ти не зможеш \"зачекаутити\" таг а потім закомітити якісь зміни в цей таг -- таги просто відмічають корисні чи символічні місця в дереві комітів.",
"Але, що важливіше, вони ніколи не переміщуються під час створення нових комітів. Ти не зможеш \"зачекаутити\" таг а потім закомітити якісь зміни в цей таг -- таги просто відмічають корисні чи символічні місця в дереві комітів.",
"",
"Давайте подивимось на практиці"
"Розгляньмо це на практиці"
]
}
},
@ -580,10 +580,10 @@
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте спробуємо зробити новий таг на `C1` що є прототипом нашої першої версії (вигаданого проекту)"
"Спробуймо зробити новий таг на `C1`, що є прототипом нашої першої версії (вигаданого проекту)"
],
"afterMarkdowns": [
"Ось маєш! Все досить просто. Ми назвали наш таг `v1` й він явно посилається на `C1`. Якщо пропустити коміт, git просто відмітить те на чому знаходиться `HEAD` в данний момент"
"Ось і маєш! Все досить просто. Ми назвали наш таг `v1` і він явно посилається на `C1`. Якщо пропустити коміт, git просто відмітить те, на чому знаходиться `HEAD` в данний момент"
],
"command": "git tag v1 C1",
"beforeCommand": "git commit"
@ -593,7 +593,7 @@
"type": "ModalAlert",
"options": {
"markdowns": [
"Для того щоб пройти цей рівень достатньо створити кілька тагів, як показано на візуалізації цілей й потім зачекаутити `v1`. Зауваж що ти потрапиш в стан detached `HEAD` -- це тому що ти не можеш напряму комітити в таг `v1`.",
"Для того щоб пройти цей рівень, достатньо створити кілька тагів, як показано на візуалізації цілей, і потім зачекаутити `v1`. Зауваж, що ти потрапиш в стан `detached HEAD` -- це тому що ти не можеш напряму комітити в таг `v1`.",
"",
"В наступному рівні ми розглянемо більш цікавий приклад роботи з тагами."
]

View file

@ -641,7 +641,7 @@
"Ми бачимо репозиторій де є певні зміни в гілці `side` які ми хочемо скопіювати в `master`. Для цього можна використати rebase (який ми вже вивчили), але подивимось як з цим впорається cherry-pick."
],
"afterMarkdowns": [
"Обаа! Ми хотіли коміти `C2` та `C4` і git додав їх до поточного розташування. Просто й доступно!"
"Овва! Ми хотіли коміти `C2` та `C4` і git додав їх до поточного розташування. Просто й доступно!"
],
"command": "git cherry-pick C2 C4",
"beforeCommand": "git checkout -b side; git commit; git commit; git commit; git checkout master; git commit;"

View file

@ -691,9 +691,9 @@
"markdowns": [
"## Інтерактивний Rebase",
"",
"Git cherry-pick зручно користуватись коли ти знаєш які коміти тобі потрібні (_і_ ти знаєш їхні хеші) -- важко вигадати щось простіше.",
"Git cherry-pick зручно користуватись, коли ти знаєш які коміти тобі потрібні (_і_ ти знаєш їхні хеші) -- важко вигадати щось простіше.",
"",
"Але що робити в ситуації коли ти не знаєш які коміти потрібні? На щастя git може впоратись і з цим! Для цього випадку використовують інтерактивний rebase -- це найкращий спосіб перевірити серію комітів які потрібно заребейсити.",
"Але що робити в ситуації, коли ти не знаєш які коміти потрібні? На щастя git може впоратись і з цим! Для цього випадку використовують інтерактивний rebase -- це найкращий спосіб перевірити серію комітів які потрібно заребейсити.",
"",
"Розглянемо це детальніше..."
]
@ -719,9 +719,9 @@
"",
"* Ти можеш переставити коміти між собою просто змінивши їх порядок в діалозі (в нашому вікні ти зможеш перетягнути їх мишкою).",
"* Ти можеш повністю пропустити якісь коміти. В туторіалі потрібно вимкнути опцію `pick`, але в справжньому гіт потрібно просто видалити відповідний рядок.",
"* Також можна розчавити (squash) якісь коміти. На жаль наш туторіал не підтримує цю фічу (так як ми не підтримуємо роботу з файлами), але це дуже зручна опція в справжньому гіт. За її допомогою можна декілька різніх комітів об’єднати в один",
"* Також можна розчавити (squash) якісь коміти. На жаль наш туторіал не підтримує цю фічу (так як ми не підтримуємо роботу з файлами), але це дуже зручна опція в справжньому гіт. За її допомогою можна декілька різніх комітів об’єднати в один.",
"",
"Чудово! Давайте розберемо це на прикладі"
"Чудово! Розгляньмо це на прикладі"
]
}
},
@ -729,7 +729,7 @@
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Коли ти натиснеш кнопку відкриється вікно інтерактивного rebase. Перестав якісь коміти (можеш пропустити якісь якщо хочеш) і подивись що вийде!"
"Коли ти натиснеш кнопку, відкриється вікно інтерактивного rebase. Перестав якісь коміти (можеш пропустити якісь якщо хочеш), і подивись що вийде!"
],
"afterMarkdowns": [
"Ка-бум! Git cкопіював коміти відповідно до того що було вказано в UI"

View file

@ -31,7 +31,7 @@ exports.level = {
"zh_CN": "记住,最后更新 master 分支可能是最高效的方法。",
"zh_TW": "要記住喔! 把 master branch 留到最後更新可能是最有效率的方法。",
"ru_RU": "Не забудь, что лучше всего сдвинуть мастер в самом конце...",
"uk" : "Не забвай, що краще всього буде перемістити master в самому кінці... "
"uk" : "Не забувай, що краще всього буде перемістити master в самому кінці... "
},
"startDialog": {
"en_US": {
@ -220,13 +220,13 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"### Ребейсим кілька гілок",
"### Ребейсимо кілька гілок",
"",
"В нас тут до біса гілок! Давай перенесемо всі зміни з різних гілок в master.",
"В нас тут до біса гілок! Перенесімо всі зміни з різних гілок в master.",
"",
"Але вище керівництво нам не полегшує життя -- вони хочуть щоб всі коміти були по порядку. Це означає що в реузультаті коміт `C7'` має бути з самого низу, `C6'` трохи вище, і так далі, все по порядку.",
"Але вище керівництво нам не полегшує життя -- вони хочуть, щоб всі коміти були впорядковані. Це означає, що в результаті коміт `C7'` має бути з самого низу, `C6'` трохи вище, і так далі, все за порядком.",
"",
"Якщо ти щось зробиш не так, сміливо використовуй `reset` щоб почати спочатку. Подивись на наш розв’язок і подумай чи ти можеш обійтись меншою кількістю команд!"
"Якщо ти щось зробиш не так, сміливо використовуй `reset` щоб почати спочатку. Подивись на наш розв’язок і подумай, чи ти можеш обійтись меншою кількістю команд!"
]
}
}

View file

@ -17,7 +17,7 @@ exports.level = {
"zh_CN": "分支浆糊",
"zh_TW": "branch 漿糊",
"ru_RU": "Спутанные ветки",
"uk" : "Макарони з кілок"
"uk" : "Макарони з гілок"
},
"hint": {
"en_US": "Make sure to do everything in the proper order! Branch one first, then two, then three",
@ -30,7 +30,7 @@ exports.level = {
"zh_CN": "确保你是按照正确的顺序来操作!先操作分支 `one`, 然后 `two`, 最后才是 `three`",
"zh_TW": "確認你是按照正確的順序來操作!先操作 branch `one`, 然後 `two`, 最後才是 `three`",
"ru_RU": "Убедись, что у нас всё по порядку! Сначала ветка `one`, потом `two` и только потом `three`",
"uk": "Впевнись що все йде по порядку! спочатку гілка `one`, потім `two` й тільки потім `three`"
"uk": "Переконайся, що все йде за порядком! Спершу гілка `one`, потім `two`, і тільки потім `three`"
},
"startDialog": {
"en_US": {
@ -239,13 +239,13 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"## Магарони з гілок",
"## Макарони з гілок",
"",
"Ооо Неля! Ну й завданнячко.",
"",
"Ми маємо гілку `master`, яка на кілька комітів попереду гілок `one`, `two` та `three`. З незрозумілих причин, нам потрібно оновити ці гілки більш пізніми змінами з мастеру.",
"",
"Гілку `one` портрібно відсортувати по порядку і видалити `C5`. Гілку `two` потрібно відсортувати, а в гілку `three` потрібно додати ще один коміт!",
"Гілку `one` потрібно впорядкувати і видалити `C5`. Гілку `two` також потрібно впорядкувати, а в гілку `three` потрібно додати ще один коміт!",
"",
"Ми повністю покладаємось на тебе -- порівняй свій розв’зок з нашим, який можна подивитись командою `show solution`. "
]

View file

@ -605,15 +605,15 @@ exports.level = {
"markdowns": [
"## Віддалені репозиторії",
"",
"Віддалені репозиторії не є дуже складними. В сучасному світі де на кожному кроці можна зустріти \"хмарні обчислення\" може видатися що концепція віддалених репозиторіїв є дуже складною, але насправді вони просто звичайні копії твого репозиторію на віддаленому комп’ютері. Зазвичай з цим віддаленим комп’ютером можна зв’язатися через інтернет, що дозволяє обмінюватись комітами.",
"Віддалені репозиторії не є дуже складними. В сучасному світі, де на кожному кроці можна зустріти \"хмарні обчислення\", може видатися, що концепція віддалених репозиторіїв є дуже складною, але насправді вони -- просто звичайні копії твого репозиторію на віддаленому комп’ютері. Зазвичай з цим віддаленим комп’ютером можна зв’язатися через інтернет, що дозволяє обмінюватись комітами.",
"",
"Приймаючи до уваги все сказане вище, віддалені репозиторії мають купу гарних властивостей:",
"Приймаючи до уваги все сказане вище, віддалені репозиторії мають купу чудових властивостей:",
"",
"- В першу чергу, віддалені сервери це завжди чудова резевна копія (бекап)! Локальний репозиторій дає можливість відкотитися до попереднього стану, але вся інформація зберігається локально. Маючи копії свого репозиторію на віддалених машинах, ти можеш пережити втрату жорсткого диску чи пошкодження данних і продовжити працювати з того місця на якому закінчив.",
"- В першу чергу, віддалені сервери -- це завжди чудова резевна копія (бекап)! Локальний репозиторій дає можливість відкотитися до попереднього стану, але вся інформація зберігається локально. Маючи копії свого репозиторію на віддалених машинах, ти можеш пережити втрату жорсткого диску чи пошкодження данних і продовжити працювати з того місця, на якому закінчив.",
"",
"- Що не менш важливо, віддалені репозиторії роблять програмування соціальним! Коли копія твого проекту розміщена в мережі, твої друзі мають змогу допомогти твоєму проекту (чи стягнути останні зміни) без зайвих зусиль.",
"",
"Стало дуже популярним користуватися веб сайтами, що візуалізують активність на віддалених репозиторіях (наприклад [Github](https://github.com/) чи [Phabricator](http://phabricator.org/)), але віддалені репозиторії _завжди_ слугують як основа цих сервісів. Тому важливо розуміти їх!"
"Стало дуже популярним користуватися веб-сайтами, що візуалізують активність на віддалених репозиторіях (наприклад [Github](https://github.com/) чи [Phabricator](http://phabricator.org/)), але віддалені репозиторії _завжди_ слугують як основа цих сервісів. Тому важливо розуміти їх!"
]
}
},
@ -621,11 +621,11 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"## Команда що створює віддалені репозиторії",
"## Команда, що створює віддалені репозиторії",
"",
"До цього моменту, Вчимо Git Гілкування концентрувало увагу на основах роботи з _локальним_ репозиторієм (гілкування, злиття гілок, ребейс, тощо). Однак тепер коли ми вчимо віддалені репозиторії, нам потрібно налаштувати середовище для подальших уроків. `git clone` впорається з цим завданням",
"До цього моменту, Learn Git Branching концентрувало увагу на основах роботи з _локальним_ репозиторієм (гілкування, злиття гілок, ребейс, тощо). Однак тепер, коли ми вчимо віддалені репозиторії, нам потрібно налаштувати середовище для подальших уроків. `git clone` впорається з цим завданням.",
"",
"В принципі, `git clone` в справжньому гіт це команда для створення _локальної_ копії віддаленого репозиторію (наприклад з github). Але у Вчимо Git Гілкування ми використовуватимо цю команду по іншому -- `git clone` буде створювати віддалений репозиторій з локального. Я згодний шо це трохи навпаки, але це допоможе створити зв’язок в голові між клонуванням та роботою з віддаленми репо, тому поки що будемо використовувати її таким чином.",
"В принципі, `git clone` в справжньому git -- це команда для створення _локальної_ копії віддаленого репозиторію (наприклад з github). Але у Learn Git Branching ми використовуватимемо цю команду по-іншому -- `git clone` буде створювати віддалений репозиторій з локального. Я згодний, що це виходить трохи догори-дригом, але це допоможе створити зв’язок в голові між клонуванням та роботою з віддаленми репо, тому поки що будемо використовувати її таким чином.",
""
]
}
@ -634,7 +634,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Низький старт - просто подивимось як віддалений репозиторій виглядає (в нашій візуалізації).",
"Низький старт - просто подивімося, як віддалений репозиторій виглядає (в нашій візуалізації).",
""
],
"afterMarkdowns": [

View file

@ -523,13 +523,13 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"## Симулюємо коллаборацію",
"## Симулюємо співпрацю",
"",
"Зараз ми знаходимось в незручному становищі -- в деяких з наступних уроків, нам потрібно пояснити як витягнути зміни з віддаленого репозиторію, що були туди додані іншим учасником.",
"Зараз ми знаходимося в незручному становищі -- в деяких із наступних уроків нам потрібно буде пояснити як витягнути зміни з віддаленого репозиторію, що були туди додані іншим учасником.",
"",
"Це означає, що нам треба \"вдавати\", що віддалений репозиторій був модифікований твоїм колегою / друзями / небайдужими, іноді на специфічній гілці чи коміті.",
"",
"Щоб зробити це, ми додали влучно названу команду `git fakeTeamwork` (симуляціяКолективноїРоботи)! Насправді, з симуляцією колективної роботи стикався мабуть кожен, хто працював в колективі, тому перейдемо до прикладів..."
"Щоб зробити це, ми додали влучно названу команду `git fakeTeamwork` (симуляціяКолективноїРоботи)! Насправді, з симуляцією колективної роботи стикався мабуть кожен, хто працював в колективі, тож перейдімо до прикладів..."
]
}
},
@ -540,7 +540,7 @@ exports.level = {
"За замовчуванням `fakeTeamwork` просто додасть коміт в гілку `master`"
],
"afterMarkdowns": [
"Зробили -- до віддаленого репозиторію додався ще один коміт, проте ми ще його не завантажили, оскільки ще не виконали `git fetch`."
"Є -- до віддаленого репозиторію додався ще один коміт, проте ми ще його не звантажили, оскільки ще не виконали `git fetch`."
],
"command": "git fakeTeamwork",
"beforeCommand": "git clone"
@ -550,10 +550,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Ти також можеш вказати кількість комітів чи гілку куди потрібно додати коміти."
"Ти також можеш вказати кількість комітів чи гілку, в яку потрібно додати коміти."
],
"afterMarkdowns": [
"Виконавши одну команду ми симулювали колегу що запушив три коміти в гілку `foo` на віддаленому репозиторії"
"Виконавши одну команду ми симулювали колегу, що запушив три коміти в гілку `foo` на віддаленому репозиторії."
],
"command": "git fakeTeamwork foo 3",
"beforeCommand": "git branch foo; git clone"
@ -565,7 +565,7 @@ exports.level = {
"markdowns": [
"Наступні рівні будуть доволі складними, тому, щоб підготуватись, на цьому рівні теж доведеться не солодко.",
"",
"Зроби віддалений репозиторій (за допомогою `git clone`), зроби кілька фіктивних змін, зроби кілька комітів локально, й підвантаж віддалені зміни. Це як кілька уроків в одному!"
"Створи віддалений репозиторій (за допомогою `git clone`), зроби кілька фіктивних змін, зроби кілька комітів локально, й підвантаж віддалені зміни. Це як кілька уроків в одному!"
]
}
}

View file

@ -692,9 +692,9 @@ exports.level = {
"markdowns": [
"## Git Fetch",
"",
"Робота з віддаленими гіт репозиторіями зводиться до передачі данних _до_ й _з_ інших репозиторіїв. Можливість передавати коміти дозволяє нам ділитися будь-якою інформацією, що відслідковується гіт (а отже виконаною роботою, новими файлами, ідеями, листами, тощо).",
"Робота з віддаленими git-репозиторіями зводиться до передачі данних _до_ та _з_ інших репозиторіїв. Можливість передавати коміти дозволяє нам ділитися будь-якою інформацією, що відслідковується gitом (а отже, виконаною роботою, новими файлами, ідеями, листами, тощо).",
"",
"На цьому уроці ми навчимося витягати данні _з_ віддаленого репозиторію -- команда, що відповідає за це, зручно називається `git fetch` (fetch - англ. витягнути чи дістати).",
"На цьому уроці ми навчимося витягати дані _з_ віддаленого репозиторію -- команда, що відповідає за це, зручно називається `git fetch` (fetch - англ. витягнути чи дістати).",
"",
"Зауваж, що коли ми оновлюємо наш віддалений репозиторій, наші _віддалені_ гілки теж оновляться. Про це ми говорили на попередньому уроці."
]
@ -704,7 +704,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Перед тим, як почати розбиратися з `git fetch`, давай спробуємо його в дії! Тут ми маємо віддалений репозиторій який містить два коміти яких немає в нашому локальному сховищі."
"Перед тим, як почати розбиратися з `git fetch`, спробуймо його в дії! Тут ми маємо віддалений репозиторій, що містить два коміти, яких немає в нашому локальному сховищі."
],
"afterMarkdowns": [
"Ось, маєш! Коміти `C2` та `C3` було завантажено до нашого локального сховища й наша віддалена гілка `o/master` була відповідно оновлена."
@ -719,14 +719,14 @@ exports.level = {
"markdowns": [
"### Що робить fetch",
"",
"`git fetch` виконує дві основні дії, й тільки дві дії. Він:",
"`git fetch` виконує дві основні дії, і тільки дві дії. Він:",
"",
"* завантажує коміти які містить віддалене сховище, але яких немає в локальному сховищі, та...",
"* звантажує коміти, які містить віддалене сховище, але яких немає в локальному сховищі, та...",
"* оновлює посилання віддаленого бранчу (наприклад, `o/master`)",
"",
"Якщо коротко `git fetch` приводить репрезентацію віддаленого репозиторію в локальному сховищі до _актуального_ стану справжнього віддаленого репозиторію.",
"Якщо коротко, `git fetch` приводить репрезентацію віддаленого репозиторію в локальному сховищі до _актуального_ стану справжнього віддаленого репозиторію.",
"",
"Якщо ти пам’ятаєш з попереднього уроку, ми тоді зауважили, що віддалені гілки відображають стан віддаленого репозиторію _від_ останнього разу коли ми синхронізувались з віддаленим репозиторієм. `git fetch` якраз і відповідає за синхронізацію з віддаленим сховищем! Сподіваюсь, що зв’язок між віддаленими гілками `git fetch` зараз є очевидним.",
"Якщо ти пам’ятаєш з попереднього уроку, ми тоді зауважили, що віддалені гілки відображають стан віддаленого репозиторію _від_ останнього разу, коли ми синхронізувались з віддаленим репозиторієм. `git fetch` якраз і відповідає за синхронізацію з віддаленим сховищем! Сподіваюсь, що зв’язок між віддаленими гілками `git fetch` тепер є очевидним.",
"",
"Як правило, `git fetch` працює з віддаленими сховищами через інтернет (через протоколи `http://` чи `git://`).",
""
@ -739,11 +739,11 @@ exports.level = {
"markdowns": [
"### Чого не робить fetch",
"",
"Тим не менш, `git fetch` нічого не змінює в _твоєму_ локальному стані. Він не оновить твою гілку`master` і не змінить того, як наразі виглядає локальна файлова система.",
"Тим не менш, `git fetch` нічого не змінює в _твоєму_ локальному стані. Він не оновить твою гілку `master` і не змінить того, як наразі виглядає локальна файлова система.",
"",
"Це важливо зрозуміти, тому, що багато розробників думають, що `git fetch` оновить їхні локальні данні до стану віддаленого репозиторію. Він дійсно завантажить всі потрібні данні, щоб це зробити, але він автоматично _не_ змінить ніяких локальних файлів. Ми вивчимо команди, які це роблять в наступних уроках :D",
"Це важливо зрозуміти, тому що багато розробників думають, що `git fetch` оновить їхні локальні данні до стану віддаленого репозиторію. Він дійсно звантажить всі потрібні дані, щоб це зробити, але він _не змінить_ автоматично жодних локальних файлів. Ми вивчимо команди, які це роблять, в наступних уроках :D",
"",
"Отже, зрештою, ти можеш вважати що `git fetch` просто завантажує нову інформацію з віддаленого сховища."
"Отже, зрештою, ти можеш вважати що `git fetch` просто звантажує нову інформацію з віддаленого сховища."
]
}
},
@ -751,7 +751,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Щоб пройти цей рівень просто виконай `git fetch` і завантаж всі коміти!"
"Щоб пройти цей рівень просто виконай `git fetch` і звантаж всі коміти!"
]
}
}

View file

@ -26,7 +26,7 @@ exports.level = {
"ja" : "コミットIDの入れ替わりに注意スライドを復習するには`help level`を実行",
"ru_RU": "Обратите внимание на то, как номера коммитов могут меняться! Вы можете прочесть слайды вновь, воспользовавшись командой \"help level\"",
"ko" : "커밋 ID가 바뀔수도있으니 주의하세요! \"help level\"을 입력하면 슬라이드들을 다시 읽어볼수 있습니다.",
"uk" : "Зверни увагу на те, що номери комітів можуть мінятися! Слайди уроку можна переглянути ще раз командою \"help level\""
"uk" : "Зверни увагу на те, що номери комітів можуть змінюватися! Слайди уроку можна переглянути ще раз командою \"help level\""
},
"startDialog": {
"en_US": {
@ -1144,11 +1144,11 @@ exports.level = {
"markdowns": [
"## Аргументи git fetch",
"",
"Отже, ми вже вивчили все про аргументи git push, про корисний параметр `<place>` і про формат запису з двокрапкою (`<source>:<destination>`). Чи знадобляться нам ці зання про вивченні `git fetch`?",
"Отже, ми вже вивчили все про аргументи git push, про корисний параметр `<place>` і про формат запису з двокрапкою (`<source>:<destination>`). Чи знадобляться нам ці зання при вивченні `git fetch`?",
"",
"Ще б пак! Аргументи для `git fetch` насправді *дуже, дуже* схожі на `git push`. Принцип той самий, з точністю до напрямку (бо ми скачуєм коміти, а не закачуєм).",
"Ще б пак! Аргументи для `git fetch` насправді *дуже, дуже* схожі на `git push`. Принцип той самий, з точністю до напрямку (бо ми звантважуємо коміти, а не завантажуємо).",
"",
"Розглянемо це крок за кроком..."
"Розгляньмо це крок за кроком..."
]
}
},
@ -1158,13 +1158,13 @@ exports.level = {
"markdowns": [
"### Параметр `<place>`",
"",
"Якщо вказати параметр `<place>` для команди git fetch наприклад так:",
"Якщо вказати параметр `<place>` для команди git fetch, наприклад, так:",
"",
"`git fetch origin foo`",
"",
"git піде у віддалену гілку `foo`, візьме всі коміти, яких немає локально і закине в локальну гілку `o/foo`.",
"",
"Давайте подивимось на це в дії (просто щоб пригадати)."
"Подивімось на це в дії (просто щоб пригадати)."
]
}
},
@ -1175,7 +1175,7 @@ exports.level = {
"Вказуючи `<place>`..."
],
"afterMarkdowns": [
"Ми скачуєм коміти лише з `foo` і кладемо їх в `o/foo`"
"Ми звантажуємо коміти лише з `foo` і кладемо їх в `o/foo`"
],
"command": "git fetch origin foo",
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
@ -1185,9 +1185,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Ти можеш подумати, чому git закинув ці коміти в гілку `o/foo` замість того, що покласти їх відразу в локальну гілку `foo`? Я думав, що параметр `<place>` одночасно вказує місце звідки взяти і куди поставити?",
"Ти можеш спитати, чому git закинув ці коміти в гілку `o/foo` замість того, щоб покласти їх відразу в локальну гілку `foo`? Я думав, що параметр `<place>` одночасно вказує місце звідки взяти і куди поставити?",
"",
"Ну, git робить невеликий вийняток в цьому випадку, оскільки ти, ймовірно, маєш якусь роботу в `foo` і не хочеш там нічого зіпсувати! Пригадай з попереднього уроку про `git fetch` -- він не оновлює твої локальні (не віддалені -- без `o/`) гілки, він тільки скачує коміти (так щоб їх можна було переглянути/змерджити пізніше).",
"Ну, git робить невеликий виняток в цьому випадку, оскільки ти, ймовірно, маєш якусь роботу в `foo`, і не хочеш там нічого зіпсувати! Пригадай з попереднього уроку про `git fetch` -- він не оновлює твої локальні (не віддалені -- без `o/`) гілки, він тільки звантажує коміти (так, щоб їх можна було переглянути/змерджити пізніше).",
""
]
}
@ -1196,11 +1196,11 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"\"Ну, в такому разі, що буде, якщо якно вказати і джерело і призначення `<source>:<destination>`?\"",
"\"Ну, в такому разі, що буде, якщо явно вказати і джерело і призначення `<source>:<destination>`?\"",
"",
"Якщо ти почуваєшся достатньо впевненим і хочеш скачати віддалені коміти *прямо* в свою локальну гілку, тоді - так, ти можеш так написати використавши синтаксис з двокрапкою. Єдиний вийняток - таким способом не можна витягувати зміни в поточну локальну гілку, в будь-яку іншу - без проблем.",
"Якщо ти почуваєшся достатньо впевненим і хочеш звантажити віддалені коміти *прямо* в свою локальну гілку, тоді -- справді, ти можеш так написати, використавши синтаксис з двокрапкою. Єдиний виняток -- таким способом не можна витягувати зміни в поточну локальну гілку, в будь-яку іншу -- без проблем.",
"",
"Тепер в нас `<source>` вказує на *віддалений репозиторій*, а `<destination>` - *локальне* місце кути скачаються коміти. Це повна протилежність тому, як було в git push, що з рештою має сенс оскільки ми передаємо дані у протилежному напрямку!",
"Тепер в нас `<source>` вказує на *віддалений репозиторій*, а `<destination>` -- на *локальне* місце, куди звантажаться коміти. Це повна протилежність тому, як було в git push, що, зрештою, має сенс, адже ми передаємо дані у протилежному напрямку!",
"",
"Насправді, розробники рідко використовують такий спосіб на практиці. І він показаний тут лише для повноти описання наскільки `fetch` і `push` схожі, відрізняючись лише напрямом дії."
]
@ -1210,10 +1210,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте подивимось на це божевілля в дії:"
"Подивімось на це божевілля в дії:"
],
"afterMarkdowns": [
"Ого! Дивись, git прийняв `foo~1` як джерело скачав коміти в `bar` (локальна гілка). Зауваж, що `foo` і `o/foo` не оновлювались, оскільки ми явно вказали звідки і куди передавати коміти."
"Ого! Дивись, git прийняв `foo~1` за джерело, і звантажив коміти в `bar` (локальна гілка). Зауваж, що `foo` і `o/foo` не оновлювались, оскільки ми явно вказали звідки і куди передавати коміти."
],
"command": "git fetch origin foo~1:bar",
"beforeCommand": "git branch foo; git clone; git branch bar; git fakeTeamwork foo 2"
@ -1223,10 +1223,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"А якщо вказаного місця призначення не існує на момент виконання команди? Давайте подивимось на попередній слайд але без гілки `bar`."
"А якщо вказаного місця призначення не існує на момент виконання команди? Погляньмо на попередній слайд, але без гілки `bar`."
],
"afterMarkdowns": [
"Бачиш, все як і в випадку з git push. Git створив локальну гілку-призначення перед скачуванням, так само як створить гілку-призначення на віддаленій стороні перед пушем (якщо її не існувало, звичайно)."
"Бачиш, все як і в випадку з git push. Git створив локальну гілку-призначення перед звантаженням, так само як створить гілку-призначення на віддаленій стороні перед пушем (якщо її не існувало, звичайно)."
],
"command": "git fetch origin foo~1:bar",
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
@ -1238,7 +1238,7 @@ exports.level = {
"beforeMarkdowns": [
"Без аргументів?",
"",
"Якщо `git fetch` запущено без аргументів, він просто скачає всі коміти з віддаленого репозиторія в віддалені (`o/`) гілки..."
"Якщо `git fetch` запущено без аргументів, він просто звантажить всі коміти з віддаленого репозиторія в віддалені (`o/`) гілки..."
],
"afterMarkdowns": [
"Все дуже просто, але варто було згадати ще раз."
@ -1251,9 +1251,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"OК, досить розмов! Щоб пройти цей рівень, скачай лише вказані на візуалізації коміти. Прояви фантазію підбираючи команди!",
"Гаразд, годі балакати! Щоб пройти цей рівень, звантаж лише вказані на візуалізації коміти. Прояви фантазію, підбираючи команди!",
"",
"Тобі потрібно вказати і джерело і призначення для обох fetch-команд. Слідкуй за змінами на візуалізації, ID комітів можуть змінюватися!"
"Тобі потрібно вказати і джерело і призначення для обидвох fetch-команд. Слідкуй за змінами на візуалізації, ID комітів можуть змінюватися!"
]
}
}

View file

@ -12,7 +12,7 @@ exports.level = {
"fr_FR": "Historique divergent",
"ja" : "履歴の分岐",
"ru_RU": "Расхождение в истории",
"uk" : "Розходження в історії",
"uk" : "Розбіжності в історії",
"ko" : "엇갈린 히스토리"
},
"hint": {
@ -1326,7 +1326,7 @@ exports.level = {
"",
"Ми розглянули як витягувати (`pull`) коміти інших та як завантажувати (`push`) свої власні коміти. Це виявилось не надто складно, то як же так, що в людей дуже часто виникають з цим труднощі?",
"",
"Основна складність полягає в тому що історія різних репозиторіїв *розбігається*. Перед тим як вдатися в деталі, давайте подивимось як це виглядає на прикладі...",
"Основна складність полягає в тому, що історія різних репозиторіїв *розбігається*. Перед тим, як вдатися в деталі, подивімося як це виглядає на прикладі...",
""
]
}
@ -1347,10 +1347,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Але, забагато розмов! Подивимось на ділі!"
"Але, забагато розмов! Подивімось на ділі!"
],
"afterMarkdowns": [
"Бачиш? Нічого не сталося тому що остання команда не виконалася. `git push` не спрацював тому що твій недавній коміт `C3` базується на коміті `C1`. Але віддалений репо вже прейшов на`C2`, тому git відхилив твій push"
"Бачиш? Нічого не сталося тому що остання команда не виконалася. `git push` не спрацював тому що твій недавній коміт `C3` базується на коміті `C1`. Але віддалений репо вже прейшов на`C2`, тому git відхилив твій push."
],
"command": "git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
@ -1360,9 +1360,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Як вийти з цієї ситуації? Це просто, все що треба, -- це оновити свої напрацювання так, щоб вони базувалися на останніх змінах з віддаленої гілки.",
"Як вийти з цієї ситуації? Дуже просто! Все, що треба -- це оновити свої напрацювання так, щоб вони базувалися на останніх змінах з віддаленої гілки.",
"",
"Є кілька шляхів як цього досягнути, але найпростіший це перемістити твою роботу 'вперед' за допомогою rebase. Давай спробуємо, й подивимось як це виглядає"
"Є кілька шляхів як цього досягнути, але найпростіший -- це перемістити свою роботу 'вперед' за допомогою rebase. Спробуймо і погляньмо як це виглядає."
]
}
},
@ -1373,7 +1373,7 @@ exports.level = {
"Тепер якщо виконати rebase перед push..."
],
"afterMarkdowns": [
"Ка-бум! Ми оновили наш локальний образ віддаленого репозиторію за допомогою `git fetch`, заребейсили наші напрацювання згідно змін в віддаленому репо, й завантажили їх за допомогою `git push`"
"Ка-бум! Ми оновили наш локальний образ віддаленого репозиторію за допомогою `git fetch`, заребейсили наші напрацювання відповідно до змін у віддаленому репо, й завантажили їх за допомогою `git push`."
],
"command": "git fetch; git rebase o/master; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
@ -1383,9 +1383,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Чи є якийсь інший спосіб оновити свої напрацювання коли віддалений репозиторії пішов вперед? Звісно! Спробуємо зробити те ж саме, але натомість за допомогою `merge` (злиття).",
"Чи є якийсь інший спосіб оновити свої напрацювання, коли віддалений репозиторій пішов вперед? Звісно! Спробуймо зробити те ж саме, але натомість за допомогою `merge` (злиття).",
"",
"Хоча `git merge` і не переміщує твою роботу (а просто створює натомість коміт злиття чи merge commit), це ще[M#6 один спосіб сказати гіт що ти інтегрував останній стан віддаленого репозиторію в свої зміни. Це працює тому, що тепер віддалена гілка є *предком* твоєї гілки, а отже твої останні коміти інтегрують в собі всі коміти з віддаленої гілки.",
"Хоча `git merge` і не переміщує твою роботу (а просто створює натомість коміт злиття чи merge commit), це -- ще один спосіб сказати git, що ти інтегрував останній стан віддаленого репозиторію в свої зміни. Це працює тому, що тепер віддалена гілка є *предком* твоєї гілки, а отже твої останні коміти інтегрують в собі всі коміти з віддаленої гілки.",
"",
"Невелика демонстрація..."
]
@ -1398,7 +1398,7 @@ exports.level = {
"Тепер ми зробимо merge замість rebase..."
],
"afterMarkdowns": [
"Ка-бум! Ми оновили наш локальний образ віддаленої гілки за допомогою `git fetch`, *змерджили* нові напрацювання з власними (щоб відобразити останні змінни в віддаленій гілці), й відіслали їх за допомогою `git push`"
"Ка-бум! Ми оновили наш локальний образ віддаленої гілки за допомогою `git fetch`, *змерджили* нові напрацювання з власними (щоб відобразити останні зміни у віддаленій гілці), й відіслали їх за допомогою `git push`"
],
"command": "git fetch; git merge o/master; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
@ -1410,9 +1410,9 @@ exports.level = {
"markdowns": [
"Чудово! Чи можу я це зробити, використовуючи меншу кількість команд?",
"",
"Звісно -- ти ж знаєш що `git pull` це просто коротша форма для git fetch а потім git merge. Доволі зручно, `git pull --rebase` це коротка форма для git fetch а потім git rebase!",
"Звісно -- ти ж знаєш, що `git pull` це просто коротша форма для git fetch а потім git merge. Натомість, `git pull --rebase` це коротка форма для git fetch а потім git rebase!",
"",
"Давайте спробуємо використати ці коротші команди."
"Спробуймо використати ці коротші команди."
]
}
},
@ -1446,9 +1446,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Робочий процес, що складається з fetch, rebase/merge і push є дуже широковживаним. В наступних уроках ми розглянемо складніші версії цього процесу, а наразі спробуємо його виконати.",
"Робочий процес, що складається з fetch, rebase/merge і push є дуже широковживаним. В наступних уроках ми розглянемо складніші версії цього процесу, а наразі спробуймо його виконати.",
"",
"Щоб пройти цей рівень виконай наступні кроки:",
"Щоб пройти цей рівень, виконай наступні кроки:",
"",
"* Склонуй свій репозиторій",
"* Зроби симуляцію командної роботи (1 коміт)",

View file

@ -490,7 +490,7 @@ exports.level = {
"",
"Для того, щоб віддалений сервер прийняв твої зміни, треба *об'єднати* їх з останніми змінами на сервері. Це означає ребейс *або* мердж з віддаленою гілкою (напр. `o/master`).",
"",
"Хмм, якщо можна використати один із цих методів, для чого нам додаткові уроки про ребейс? Чому ніхто не любить `merge` працюючи з віддаленим сервером?",
"Хмм, якщо можна використати один із цих методів, для чого нам додаткові уроки про ребейс? Чому ніхто не любить `merge`, працюючи з віддаленим сервером?",
""
]
}
@ -503,7 +503,7 @@ exports.level = {
"",
"За:",
"",
"* Ребейс дозволяє тримати дерево комітів чистим, оскільки все вибудовується в пряму лінію",
"* Ребейс дозволяє тримати дерево комітів чистим, оскільки все вибудовується в пряму лінію;",
"",
"Проти:",
"",
@ -519,7 +519,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"На цьому рівні давайте спробуємо вирішити попереднє завдання з використанням *мерджу*. Можливо вийде не так охайно, але добре покаже різницю в підходах."
"На цьому рівні спробуймо вирішити попереднє завдання з використанням *мерджу*. Можливо вийде не так охайно, але добре покаже різницю в підходах."
]
}
}

View file

@ -568,14 +568,14 @@ exports.level = {
"markdowns": [
"## Git Pull",
"",
"Тепер, коли ми знаємо як витягувати данні з віддаленого репозиторію за допомогою `git fetch`, давай спробуємо оновити нашу робочу копію відповідно до цих данних!",
"Тепер, коли ми знаємо як витягувати дані з віддаленого репозиторію за допомогою `git fetch`, спробуймо оновити нашу робочу копію відповідно до цих данних!",
"",
"Насправді, є кілька шляхів як цого досягнути -- як тільки нові коміти з’явилися локально, ти можеш додавати їх в бранчі так само, як звичайні коміти. Це означає що ти можеш виконувати команди:",
"Насправді, є кілька шляхів як цого досягнути -- щойно нові коміти з’явилися локально, ти можеш додавати їх в бранчі так само, як звичайні коміти. Це означає що ти можеш виконувати команди:",
"",
"* `git cherry-pick o/master`",
"* `git rebase o/master`",
"* `git merge o/master`",
"* і так далі, і тому подібне.",
"* тощо.",
"",
"Насправді, процес *витягування* віддалених змін й подальший *мерджинг* їх є настільки популярним, що гіт пропонує спеціальну команду, що виконує ці дві дії за один раз! Ця команда називається `git pull`."
]
@ -585,10 +585,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давай спочатку виконаємо по черзі `fetch` а потім `merge`"
"Спершу виконаймо по черзі `fetch`, а потім `merge`"
],
"afterMarkdowns": [
"Ка-бум -- ми завантажили `C3` за допомогою `fetch` й потім змерджили їх використавши `git merge o/master`. Тепер наша гілка `master` відповідає гілці з віддаленого сховища (в цьому випадку, з назвою `origin`)"
"Ка-бум -- ми звантажили `C3` за допомогою `fetch` і потім змерджили їх, використавши `git merge o/master`. Тепер наша гілка `master` відповідає гілці з віддаленого сховища (в цьому випадку, з назвою `origin`)"
],
"command": "git fetch; git merge o/master",
"beforeCommand": "git clone; git commit; git fakeTeamwork"
@ -598,10 +598,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Що трапится якщо натомість використати `git pull`?"
"Що трапиться, якщо натомість використати `git pull`?"
],
"afterMarkdowns": [
"Те саме! Тепер очевидно що `git pull` -- це просто швидкий спосіб зробити `git fetch` а потім змерджити завантажену гілку."
"Те саме! Тепер очевидно що `git pull` -- це просто швидкий спосіб зробити `git fetch`, а потім змерджити завантажену гілку."
],
"command": "git pull",
"beforeCommand": "git clone; git commit; git fakeTeamwork"
@ -611,7 +611,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Ми розглянемо `git pull` більш детально пізніше (включаючи різні опції та аргументи), наразі просто спробуємо цю команду.",
"Ми розглянемо `git pull` більш детально пізніше (включаючи різні опції та аргументи), наразі просто спробуймо цю команду.",
"",
"Не забувай -- щоб пройти цей рівень, достатньо використати `fetch`, а потім `merge`, але це буде тобі коштувати одну зайву команду :P"
]

View file

@ -707,7 +707,7 @@ exports.level = {
"",
"Це тому, що git pull, зрештою, *просто* зручне об'єднання fetch і merge. Його можна собі уявляти як git fetch і git merge виконані з *однаковими* аргументами.",
"",
"Це працює незалежно від складності переданих аргументів. Давайте розглянемо:"
"Це працює незалежно від складності переданих аргументів. Розгляньмо:"
]
}
},
@ -723,13 +723,13 @@ exports.level = {
"",
"А...",
"",
"`git pull origin bar~1:bugFix` аналог:",
"`git pull origin bar~1:bugFix` -- це аналог:",
"",
"`git fetch origin bar~1:bugFix; git merge bugFix`",
"",
"Бачиш? git pull це просто зручне скорочення для fetch + merge. А все, про що дбає git pull, це те, куди в результаті підуть коміти (а про це йому говорить аргумент `destination`).",
"Бачиш? git pull -- це просто зручне скорочення для fetch + merge. А все, про що дбає git pull -- це те, куди в результаті підуть коміти (а про це йому говорить аргумент `destination`).",
"",
"Давайте подивимось демонстрацію:"
"Розгляньмо демонстрацію:"
]
}
},
@ -740,7 +740,7 @@ exports.level = {
"Якщо ми вказуємо місце призначення для fetch, fetch виконується як звичайно, але мердж відбудеться з тим, що ми щойно стягнули"
],
"afterMarkdowns": [
"От бачиш, вказавши `master`, ми скачали коміти в `o/master` як завжди. Потім змерджили `o/master` в поточну гілку."
"От бачиш, вказавши `master`, ми звантажили коміти в `o/master`, як завжди. Потім змерджили `o/master` в поточну гілку."
],
"command": "git pull origin master",
"beforeCommand": "git clone; go -b bar; git commit; git fakeTeamwork"
@ -753,7 +753,7 @@ exports.level = {
"Чи це працює також при вказанні `source` і `destination`? І не сумнівайся! Ось приклад:"
],
"afterMarkdowns": [
"Ого, стільки роботи однією командою. Ми створили локальну гілку з назвою `foo`, скачали в неї коміти з віддаленого master, а потім змерджили `foo` в поточну гілку `bar`!"
"Ого, стільки роботи однією командою. Ми створили локальну гілку з назвою `foo`, звантажили в неї коміти з віддаленого master, а потім змерджили `foo` в поточну гілку `bar`!"
],
"command": "git pull origin master:foo",
"beforeCommand": "git clone; git fakeTeamwork; go -b bar; git commit"
@ -763,7 +763,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Добре, для завершення, спробуй досягти стану репозиторію показаного на візуалізації. Треба буде скачати відсутні коміти, створити нові гілки і змерджити їх в інші гілки, але не надто великою кількістю команд! :P"
"Добре, для завершення спробуй досягти стану репозиторію, показаного на візуалізації. Треба буде звантажити відсутні коміти, створити нові гілки і змерджити їх в інші гілки, але не надто великою кількістю команд! :P"
]
}
}

View file

@ -416,15 +416,15 @@ exports.level = {
"markdowns": [
"## Git Push",
"",
"OK, я витягнув останні зміни та інтегрував їх в свої локальні напрацювання. Все добре... але як мені поділится _своїми_ змінами з рештою учасників?",
"Гаразд, я витягнув останні зміни та інтегрував їх до своїх локальних напрацювань. Все добре... але як мені поділится _своїми_ змінами з рештою учасників?",
"",
"Отже, надсилання данних є по суті протилежне завантажуванню данних. І який є антонім до `git pull` (притягнути)? `git push` (відштовхнути)!",
"Отже, надсилання данних є, по-суті, протилежним звантажуванню данних. А який антонім до `git pull` (притягнути)? `git push` (відштовхнути)!",
"",
"`git push` використовується для надсилання _локальних_ змін на вказаний віддалений репозиторій і оновлює цей репозиторій, інтегруючи нові коміти. Після виконання `git push` всі твої друзі зможуть завантажити твої напрацювання з віддаленого сховища.",
"`git push` використовується для надсилання _локальних_ змін на вказаний віддалений репозиторій; ця команда оновлює віддалений репозиторій, інтегруючи нові коміти. Після виконання `git push` всі твої друзі зможуть звантажити твої напрацювання з віддаленого сховища.",
"",
"Ти можеш вважати що `git push` \"публікує\" твої напрацювання. В цій команді є кілька особливостей, які ми скоро розглянемо, але давайте почнемо з початку...",
"Ти можеш вважати, що `git push` \"публікує\" твої напрацювання. В цієї команди є кілька особливостей, які ми скоро розглянемо, але почнімо з початку...",
"",
"*зауваження -- поведінка `git push` без параметрів різниться в залежності від налаштування git з назвою `push.default`. Значення по замовчуванню цього налаштування залежить від версії твого git, але в наших уроках ми будемо вважати що воно рівне `upstream`. Це не вкрай важливо, але буде корисно перевірити це налаштування перед тим як пушити свій проект.*"
"*Зауваження: поведінка `git push` без параметрів різниться в залежності від налаштування git з назвою `push.default`. Значення за замовчуванням цього налаштування залежить від версії твого git, але в наших уроках ми будемо вважати що воно дорівнює `upstream`. Це не вкрай важливо, але буде корисно перевірити це налаштування перед тим як пушити свій проект.*"
]
}
},
@ -432,10 +432,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Ось ми маємо деякі зміни яких нема в віддаленому сховищі. Давайте надішлемо їх!"
"Ось ми маємо деякі зміни яких нема в віддаленому сховищі. Надішлімо їх!"
],
"afterMarkdowns": [
"Ось, маєш -- віддалене сховище отримало `C2`, гілка`master` на ньому була оновлена й посилається на `C2`, й наше *власне* відображення віддаленого репо (`o/master`) було також оновлено. Все синхронізовано!"
"Ось, маєш -- віддалене сховище отримало `C2`, гілку `master` на ньому було оновлено й тепер вона посилається на `C2`, а наше *власне* відображення віддаленого репо (`o/master`) було також оновлено. Все синхронізовано!"
],
"command": "git push",
"beforeCommand": "git clone; git commit"
@ -445,7 +445,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Щоб пройти цей рівень, просто надішли два коміти у віддалений репозиторій. Але пристібнись, скоро наші уроки стануть набагато важчими!"
"Щоб пройти цей рівень, просто надішли два коміти у віддалений репозиторій. Але прищібнись, скоро наші уроки стануть значно важчими!"
]
}
}

View file

@ -695,9 +695,9 @@ exports.level = {
"markdowns": [
"## Аргумeнти git push",
"",
"Чудово! А зараз коли ти знаєш все про відслідковування віддалених гілок, ми можемо розглянути деяку магію, що відбувається при git push, fetch, і pull. Ми розглянемо лише окремі команди для розуміння загального принципу.",
"Чудово! А зараз, коли ти знаєш все про відслідковування віддалених гілок, ми можемо розглянути \"магію\", що відбувається при git push, fetch, і pull. Ми розглянемо лише окремі команди для розуміння загального принципу.",
"",
"Спочатку глянемо на `git push`. З уроку про відслідковування віддалених гілок ми знаємо, що git визначає куди і в *яку* гілку робити push дивлячись на локальну поточну гілку (і віддалену, за якою вона \"слідкує\"). Це поведінка `push` без аргументів, але git push може приймати необов'язкові аргументи в форматі:",
"Спочатку розгляньмо `git push`. З уроку про відслідковування віддалених гілок ми знаємо, що git визначає куди і в *яку* гілку робити push, дивлячись на локальну поточну гілку (і віддалену, за якою вона \"слідкує\"). Це поведінка `push` без аргументів, але git push може приймати необов'язкові аргументи в форматі:",
"",
"`git push <remote> <place>`",
"",
@ -715,9 +715,9 @@ exports.level = {
"",
"буквально перекладається як:",
"",
"*Піди в гілку, що називається \"master\" в моєму репозиторії, візьми всі коміти, піди у віддалений \"master\", що називається \"origin.\" Додай ті коміти, яких немає в цій гілці і надрукуй, що саме ти зробив.*",
"*Піди в гілку, що називається \"master\" в моєму репозиторії, візьми всі коміти, піди у віддалений \"master\", що називається \"origin\". Додай ті коміти, яких немає в цій гілці і надрукуй, що саме ти зробив.*",
"",
"Вказуючи `master` в якості аргумента \"place\", ми сказали git-у *звідки* взяти коміти і *куди* їх додати. (\"Place\") - фактично точка синхронізації двох репозиторіїв.",
"Вказуючи `master` в якості аргумента \"place\", ми сказали git-у, *звідки* взяти коміти і *куди* їх додати. (\"Place\") - фактично точка синхронізації двох репозиторіїв.",
"",
"Пам'ятайте, що оскільки ми надали git-у всю необхідну інформацію (вказавши обидва аргументи), не має значення яка гілка є зараз поточною!"
]
@ -727,10 +727,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте розглянемо приклад використання аргументів. Зверніть увагу на поточну гілку в цьому прикладі."
"Розгляньмо приклад використання аргументів. Зверніть увагу на поточну гілку в цьому прикладі."
],
"afterMarkdowns": [
"Ось так! `master` у віддаленому репозиторії обновився, оскільки ми вказали його в аргументах."
"Ось так! `master` у віддаленому репозиторії оновився, оскільки ми вказали його в аргументах."
],
"command": "git checkout C0; git push origin master",
"beforeCommand": "git clone; git commit"
@ -753,9 +753,9 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"OК, на цьому рівні давайте оновимо віддалені гілки `foo` і `master`. Для ускладнення ми заборонимо використовувати `git checkout`!",
"Гаразд, на цьому рівні оновімо віддалені гілки `foo` і `master`. Для ускладнення ми заборонимо використовувати `git checkout`!",
"",
"*Пам'ятай, віддалені гілки позначені префіксом `o/` оскільки повний префікс `origin/` не влазить в наш UI. Але не хвилюйся ",
"*Пам'ятай, віддалені гілки позначені префіксом `o/`, оскільки повний префікс `origin/` не влазить в наш UI. Але не хвилюйся ",
"про це... ти можеш використовувати `origin` посилаючись на віддалений репозиторій.*"
]
}

View file

@ -667,13 +667,13 @@ exports.level = {
"markdowns": [
"## Детальніше про аргумент `<place>`",
"",
"З попереднього уроку нам відомо, що коли ми вказуємо `master` в якості аргумента place для git push, ми задаємо і гілку *звідки* брати нові коміти і гілку *куди* їх буде перенесено.",
"З попереднього уроку нам відомо, що коли ми вказуємо `master` в якості аргумента place для git push, ми задаємо і гілку, *з якої* брати нові коміти, і гілку *до якої* їх буде перенесено.",
"",
"Тут ти можеш задуматись, а чи можуть гілки звідки беремо і куди переносимо бути різними? Що, коли потрібно коміти з локальної гілки `foo` перенести у віддалену гілку `bar`?",
"Тут ти можеш задуматись, а чи можуть гілки, звідки беремо, і куди переносимо, бути різними? Що, коли потрібно коміти з локальної гілки `foo` перенести у віддалену гілку `bar`?",
"",
"Нажаль в git це неможливо... жартую! Звичайно, що можливо :)... git просто неймовірно гнучкий (іноді аж занадто).",
"Нажаль в git це неможливо... жартую! Звісно, що можливо :)... git просто неймовірно гнучкий (іноді аж занадто).",
"",
"Давай подивимось як це робиться..."
"Подивімося як це робиться..."
]
}
},
@ -687,7 +687,7 @@ exports.level = {
"",
"Такий запис називають \"colon refspec\". Тут refspec - це просто зручна назва місця, яке git може ідентифікувати (наприклад, гілка `foo` чи просто `HEAD~1`)",
"",
"Можливість вказати два різних місця, дає велику свободу і гнучкість в роботі з віддаленим репозиторієм. Давайте подивимось демонстрацію!"
"Можливість вказати два різних місця дає велику свободу і гнучкість в роботі з віддаленим репозиторієм. Подивімось демонстрацію!"
]
}
},
@ -695,10 +695,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Пам'ятай, `source` -- це будь-яка назва місця зрозуміла гіту:"
"Пам'ятай, `source` -- це будь-яка назва місця, зрозуміла гіту:"
],
"afterMarkdowns": [
"Опа! Це доволі незвична команда, але тут все має сенс -- git, знаючи куди вказує `foo^`, завантажив на віддалену сторону ще відсутні там коміти і оновив місце призначення."
"Овва! Це доволі незвична команда, але тут все має сенс -- git, знаючи куди вказує `foo^`, завантажив на віддалену сторону ще відсутні там коміти і оновив місце призначення."
],
"command": "git push origin foo^:master",
"beforeCommand": "git clone; go -b foo; git commit; git commit"
@ -708,7 +708,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"А що, коли вказаного місця призначення не існує? Ніяких проблем! Просто вкажи назву гілки і гіт створить її на віддаленому сервері."
"А що, коли вказаного місця призначення не існує? Нема проблем! Просто вкажи назву гілки і гіт створить її на віддаленому сервері."
],
"afterMarkdowns": [
"Спритно, еге-ж? :D"

View file

@ -13,7 +13,7 @@ exports.level = {
"fr_FR": "Rappelez-vous que vous pouvez toujours utiliser les commandes undo et reset.",
"ru_RU": "Помни - ты всегда можешь отменить команды с помощью undo или reset",
"ko" : "명령어를 undo와 reset으로 되돌릴 수 있다는 것을 잊지마세요",
"uk" : "Пам'ятай, ти в будь який момент можеш використовувати команди undo або reset"
"uk" : "Пам'ятай, ти в будь-який момент можеш використовувати команди undo або reset"
},
"name": {
"en_US": "Push Master!",
@ -585,7 +585,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте коротко пригадаємо як оновити `master` і запушити свої зміни."
"Пригадаймо коротко як оновити `master` і запушити свої зміни."
],
"afterMarkdowns": [
"Ми виконали дві команди, які:",
@ -604,7 +604,7 @@ exports.level = {
"Цей рівень доволі величенький -- ось, що треба буде зробити:",
"",
"* Є три гілки з фічами -- `side1` `side2` та `side3`",
"* Ми хочемо запушити кожну з них по порядку у віддалений репозиторій",
"* Ми хочемо запушити кожну з них по черзі у віддалений репозиторій",
"* Віддалений репозиторій теж змінився, тож нам потрібно об'єднати всі ці зміни",
"",
":O Чимале завдання! Успіху! Виконання цього рівня буде великим кроком."

View file

@ -647,13 +647,13 @@ exports.level = {
"markdowns": [
"## Віддалені гілки",
"",
"Тепер, коли ти познайомився з `git clone` в дії, давай розглянемо деталі й подивимось, що дійсно змінилося.",
"Тепер, коли ти познайомився з `git clone` в дії, розгляньмо деталі й подивімося, що дійсно змінилося.",
"",
"Перше, що ти міг помітити, це те, що з’явився новий бранч з назвою `o/master`. Такі гілки називаються _віддаленими_ (remote); віддалені гілки в гіт відіграють в певному сенсі унікальну роль, тому в них є деякі спеціальні властивості, непритаманні іншим гілкам.",
"Перше, що ти міг помітити -- це те, що з’явився новий бранч з назвою `o/master`. Такі гілки називаються _віддаленими_ (remote); віддалені гілки в гіт відіграють в певному сенсі унікальну роль, тому в них є деякі спеціальні властивості, непритаманні іншим гілкам.",
"",
"Віддалені гілки відображають _стан_ віддалених репозиториїв (точніше стан віддаленого репо на момент останньої синхронізації). Вони дозволяють відрізняти та відслідковувати локальні зміни та зміни інших учасників -- що є дуже важливим для успішної синхронізації роботи між різними репозиторіями.",
"Віддалені гілки відображають _стан_ віддалених репозиторіїв (точніше, стан віддаленого репо на момент останньої синхронізації). Вони дозволяють відрізняти та відслідковувати локальні зміни та зміни інших учасників, що є дуже важливим для успішної синхронізації роботи між різними репозиторіями.",
"",
"Важливою властивістю віддалених гілок є те, що коли перейти на них ти опинишся в стані detached `HEAD`. Git робить це спеціально, так як неможливо працювати з ними напряму; ти маєш працювати в локальній гілці й по необхідності синхронізуватися з віддаленим репозиторієм (після чого віддалену гілку буде оновлено)."
"Важливою властивістю віддалених гілок є те, що коли перейти на них, ти опинишся в стані `detached HEAD`. Git робить це спеціально, так як неможливо працювати з ними напряму; ти маєш працювати в локальній гілці й по необхідності синхронізуватися з віддаленим репозиторієм (після чого віддалену гілку буде оновлено)."
]
}
},
@ -663,17 +663,17 @@ exports.level = {
"markdowns": [
"### Що за `o/`? Або Римський салют",
"",
"Ти, можливо, здогадуєшся для чого потрібен префікс `o/` на віддалених гілках. Так, є (примусове) правило іменування віддалених гілок -- вони відображаються в форматі:",
"Ти, можливо, здогадуєшся для чого потрібен префікс `o/` на віддалених гілках. Так, існує (примусове) правило іменування віддалених гілок -- вони відображаються в форматі:",
"",
"* `<ім’я віддаленого репо>/<ім’я гілки>`",
"",
"Отже, якщо розглянути гілку з назвою `o/master`, то ім’я гілки це `master` а ім’я віддаленого репозиторію це `o`.",
"Отже, якщо розглянути гілку з назвою `o/master`, то ім’я гілки -- це `master` а ім’я віддаленого репозиторію -- це `o`.",
"",
"Більшість розробників насправді називають ім’я головного віддаленого репозиторію `origin` (початок), а не `o`. Це настільки поширена практика, що гіт автоматично називає віддалений репозиторій `origin` коли ти його клонуєш.",
"",
"На жаль повністю ім’я `origin` не влазить в наш UI, натомість ми будемо використовувати коротше `o` :( Просто не забудь, коли будеш використовувати звичайний гіт, що твій віддалений репо скоріш за все називається `origin`!",
"",
"Це багато інформації, подивимось як це працює на прикладі."
"Це багато інформації, погляньмо як це працює на прикладі."
]
}
},
@ -681,10 +681,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте зробимо checkout віддаленої гілки й подивимось що буде"
"Зробімо checkout віддаленої гілки й подивімось, що буде"
],
"afterMarkdowns": [
"Як бачиш, git перейшов в стан detached `HEAD` і не оновив `o/master` коли ми зробили новий коміт. Це тому, що `o/master` буде оновлено лише тоді коли буде оновлено віддалений репозиторій."
"Як бачиш, git перейшов в стан `detached HEAD` і не оновив `o/master` коли ми зробили новий коміт. Це тому, що `o/master` буде оновлено лише тоді, коли буде оновлено віддалений репозиторій."
],
"command": "git checkout o/master; git commit",
"beforeCommand": "git clone"

View file

@ -514,12 +514,12 @@ exports.level = {
"markdowns": [
"### Неочевидні способи використання `<source>`",
"",
"Git має два хитрі способи використання `<source>`. Оба випливають з факту, що формально (і цілком легально) ти можеш не вказувати джерело (`source`) як для git push так і для git fetch. Ось, як саме ти можеш це зробити:",
"Git має два хитрі способи використання `<source>`. Обидва випливають з факту, що формально (і цілком легально) ти можеш не вказувати джерело (`source`) як для git push так і для git fetch. Ось, як саме ти можеш це зробити:",
"",
"* `git push origin :side`",
"* `git fetch origin :bugFix`",
"",
"Давай подивимось, що в результаті вийде..."
"Погляньмо, що в результаті вийде..."
]
}
},
@ -530,7 +530,7 @@ exports.level = {
"Що буде, якщо спробувати запушити \"ніщо\" у гілку віддаленого репозиторію? Git її видалить!"
],
"afterMarkdowns": [
"Ось, ми успішно видалили гілку `foo` на віддаленому сервері запушивши в неї \"ніщо\". Ну, ніби все правильно..."
"Ось, ми успішно видалили гілку `foo` на віддаленому сервері, запушивши в неї \"ніщо\". Ну, ніби все правильно..."
],
"command": "git push origin :foo",
"beforeCommand": "git clone; git push origin master:foo"
@ -540,7 +540,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"І останнє, скачування \"ніщо\" в локальний репозиторій створює нову гілку"
"І останнє, звантаження \"нічого\" в локальний репозиторій створює нову гілку"
],
"afterMarkdowns": [
"Дуже дивно, але такий він, git!"
@ -553,7 +553,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"Це швидкий рівень -- просто видали одну віддалену гілку і створи нову локальну гілку використовуючи `git fetch`!"
"Це швидкий рівень -- просто видали одну віддалену гілку і створи нову локальну гілку, використовуючи `git fetch`!"
]
}
}

View file

@ -1212,7 +1212,7 @@ exports.level = {
"markdowns": [
"### Гілки віддаленого стеження",
"",
"Одна з речей в попередніх уроках, яка могла виглядати \"магією\", це те, що гіт якось знає, що локальна гілка `master` відповідає віддаленій `o/master`. Звичайно, ці гілки мають схожі назви і це логічно -- співставити віддалену гілку `master` з `master` локальною, однак цей зв'язок добре видно в двох випадках:",
"Одна з речей в попередніх уроках, яка могла виглядати, наче \"магія\" -- це те, що гіт якось знає, що локальна гілка `master` відповідає віддаленій `o/master`. Звичайно, ці гілки мають схожі назви, і виглядає логічним співставити віддалену гілку `master` з локальною `master`, однак цей зв'язок найкраще видно в двох випадках:",
"",
"* Під час операції `pull`, коміти попадають в `o/master`, а вже потім *мерджаться* в локальний `master`. Гілка в яку відбудеться мердж якраз і визначається цим зв'язком.",
"* Під час операції `push`, коміти з гілки `master` переносяться у віддалений `master` (який локально представлений як `o/master`). *Гілка-призначення* для `push` визначена зв'язком між `master` і `o/master`.",
@ -1226,7 +1226,7 @@ exports.level = {
"markdowns": [
"## Гілки віддаленого стеження",
"",
"В двох словах, цей зв'язок між `master` та `o/master` і є тим \"віддаленим стеженням\" визначеним для гілки. Гілка `master` налаштована стежити за `o/master` -- це визначає неявну ціль для мерджу і неявне призначення під час операції `push` для гілки `master`.",
"В двох словах, цей зв'язок між `master` та `o/master` і є тим \"віддаленим стеженням\", визначеним для гілки. Гілка `master` налаштована стежити за `o/master` -- це визначає неявну ціль для мерджу і неявне призначення під час операції `push` для гілки `master`.",
"",
"Ви можете подумати, а як же такий зв'язок було встановлено, якщо я не виконував жодної команди? Ну, коли гіт клонує репозиторій, він встановлює цей зв'язок автоматично.",
"",
@ -1246,7 +1246,7 @@ exports.level = {
"markdowns": [
"### А можу я сам вибирати?",
"",
"Так, ти можеш! Ти можеш вибрати довільну гілку яка слідкуватиме за `o/master`, і тоді для цієї гілки `push` та `merge` автоматично працюватимуть з `master`. Це означає, що виконання `git push` в гілці з назвою `totallyNotMaster` (зовсім не master) може зберегти локальні коміти у віддалену гілку `master`!",
"Так, можеш! Ти можеш вибрати довільну гілку, яка слідкуватиме за `o/master`, і тоді для цієї гілки `push` та `merge` автоматично працюватимуть з `master`. Це означає, що виконання `git push` в гілці з назвою `totallyNotMaster` (зовсім не master) може зберегти локальні коміти у віддалену гілку `master`!",
"",
"Є два шляхи встановити такий зв'язок. Перший - створити нову гілку з явним вказанням зв'язку (за ким слідкувати). Виконання",
"",
@ -1260,10 +1260,10 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Досить розмов, подивимось в дії! Створимо нову гілку `foo` і змусимо її слідкувати за віддаленою гілкою `master`."
"Досить розмов, подивімось в дії! Створімо нову гілку `foo` і змусьмо її слідкувати за віддаленою гілкою `master`."
],
"afterMarkdowns": [
"Як видно з результату, при оновленні `foo` було використано автоматичний зв'язок з `o/master` під час операції `merge`. Зверніть увагу, master не було оновлено!"
"Як видно з результату, при оновленні `foo` було використано автоматичний зв'язок з `o/master` під час операції `merge`. Зверніть увагу, `master` не було оновлено!"
],
"command": "git checkout -b foo o/master; git pull",
"beforeCommand": "git clone; git fakeTeamwork"
@ -1276,7 +1276,7 @@ exports.level = {
"Це також справджується і для git push"
],
"afterMarkdowns": [
"Ка-бум!. Ми запушили наші зміни у віддалений `master` не зважаючи на те, що локальна гілка називалась зовсім по-іншому."
"Ка-бум!. Ми запушили наші зміни у віддалений `master`, незважаючи на те, що локальна гілка називалась зовсім по-іншому."
],
"command": "git checkout -b foo o/master; git commit; git push",
"beforeCommand": "git clone"
@ -1303,7 +1303,7 @@ exports.level = {
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Давайте подивимось на цей спосіб швидко вказати віддалену гілку для відслідковування..."
"Подивімось на цей спосіб швидко вказати віддалену гілку для відслідковування..."
],
"afterMarkdowns": [
"Як і перший спосіб, але своя окрема команда."
@ -1316,7 +1316,7 @@ exports.level = {
"type": "ModalAlert",
"options": {
"markdowns": [
"ОК! На цьому рівні давай збережемо свою роботу у віддалену гілку `master` *без* переходу на локальну `master`. Про решту здогадайся сам, раз ти вже дойшов до цього рівня :P"
"Гаразд! На цьому рівні збережімо свою роботу у віддалену гілку `master` *без* переходу на локальну `master`. Про решту здогадайся сам, раз ти вже дойшов до цього рівня :P"
]
}
}