mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-08-21 01:59:17 +02:00
Merge branch 'master' into mzJPTranslate3
This commit is contained in:
commit
03db0de6bb
24 changed files with 283 additions and 58 deletions
|
@ -9,7 +9,8 @@ exports.level = {
|
|||
"es_AR": "Introducción a clone",
|
||||
"pt_BR": "Introdução à clonagem",
|
||||
"zh_CN": "介绍 Clone",
|
||||
"zh_TW": "介紹 clone"
|
||||
"zh_TW": "介紹 clone",
|
||||
"ru_RU": "Введение в клонирование"
|
||||
},
|
||||
"hint": {
|
||||
"en_US": "Just git clone!",
|
||||
|
@ -19,7 +20,8 @@ exports.level = {
|
|||
"zh_CN": "只要 git clone!",
|
||||
"es_AR": "Simplemente hacé git clone!",
|
||||
"pt_BR": "Basta fazer um git clone!",
|
||||
"zh_TW": "只要 git clone 就好了"
|
||||
"zh_TW": "只要 git clone 就好了",
|
||||
"ru_RU": "Простой git clone!"
|
||||
},
|
||||
"startDialog": {
|
||||
"en_US": {
|
||||
|
@ -476,6 +478,63 @@ exports.level = {
|
|||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ru_RU": {
|
||||
"childViews": [
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"## Удалённые репозитории в Git",
|
||||
"",
|
||||
"На самом деле Remote удалённые репозитории в Git не так сложны, как кажутся на первый взгляд. Кажется, что в современно мире облачных вычислений под термином удалённых репозиторий подразумевается что-то сложное и загадочное. Однако, удалённые репозитории всего-навсего копии вашего репозитория, хранящиеся на другом компьютере. Обычно вы можете связываться с этим другим компьютеров через Интернет, что позволяет вам передавать коммиты туда и сюда.",
|
||||
"",
|
||||
"Как уже было сказано, удалённые репозитории обладают рядом замечательных свойств:",
|
||||
"",
|
||||
"- В первую очередь, удалённые репозитории это замечательное средство резервного копирования! На сколько Вам известно локальные репозитории способны восстанавливать файлы, использую предыдущие состояния, но вся эта информация хранится локально. Потеряв все свои локальные данные, вы способны восстановить их при наличии копии своего репозитория на другом компьютере.",
|
||||
"",
|
||||
"- Что ещё более важно, удалённые репозитории позволяют сделать процесс разработки более социальным! Теперь, когда копия вашего проекта размещена в другом месте, Ваши друзья запросто могут внести свой вклад в Ваш проект или забрать последние и актуальные изменения.",
|
||||
"",
|
||||
"Набирает популярность использование web сайтов для визуализации активности удалённых репозиторий (например [Github](https://github.com/) или [Phabricator](http://phabricator.org/)), однако удалённые репозитории _всегда_ выступают в качестве базы для таких инструментов. Поэтому так важно понимать как устроены удалённые репозитории!"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"## Наша команда для создания удалённого репозитория",
|
||||
"",
|
||||
"До настоящего момента мы были сфокусированы на изучении основ работы с _локальным_ репозиторием (ветвление, слияние, перемещение и тд.). Однако, теперь, когда мы хотим научиться работать с удалёнными репозиториями, нам нужны новые команды для настройки рабочей среды для этих упражнений. В качестве такой команды нам послужит `git clone`",
|
||||
"",
|
||||
"Технически, `git clone` в реальной жизни - это команда, которая создаст _локальную_ копию удалённого репозитория (например, с github). На наших занятиях в Learn Git Branching мы используем эту команду немного иначе -- `git clone` создаёт удалённый репозиторий на основе Вашего локального репозитория. Это на самом деле является полной противоположностью реальной команды, однако, такой подход поможет нам наладить связь между склонированным и удалённым репозиторием. Давайте просто запустим эту команду.",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "GitDemonstrationView",
|
||||
"options": {
|
||||
"beforeMarkdowns": [
|
||||
"Давайте начнём постепенное изучение и взглянем на то, что собой представляет удалённый репозиторий (в нащем представлении).",
|
||||
""
|
||||
],
|
||||
"afterMarkdowns": [
|
||||
"Вот так! Теперь у нас есть удалённый репозиторий нашего проекта. Выглядит всё довольно одинаковым за исключением некоторых визуальных различий -- в последующих уровнях Вы увидите как мы разделяем работу по этим репозиториям."
|
||||
],
|
||||
"command": "git clone",
|
||||
"beforeCommand": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"Чтобы завершить уровень просто выполните `git clone` на своём существующем репозитории. Настоящее обучение появится в последующих уроках."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -10,7 +10,8 @@ exports.level = {
|
|||
"es_AR": "git fetch",
|
||||
"pt_BR": "Git Fetch",
|
||||
"zh_CN": "Git Fetch",
|
||||
"zh_TW": "git fetch"
|
||||
"zh_TW": "git fetch",
|
||||
"ru_RU": "Git fetch"
|
||||
},
|
||||
"hint": {
|
||||
"en_US": "just run git fetch!",
|
||||
|
@ -20,7 +21,8 @@ exports.level = {
|
|||
"es_AR": "Simplemente ¡hacé git fetch!",
|
||||
"pt_BR": "Simplesmente chame git fetch!",
|
||||
"zh_CN": "只要运行 git fetch 命令!",
|
||||
"zh_TW": "只要下 git fetch 指令"
|
||||
"zh_TW": "只要下 git fetch 指令",
|
||||
"ru_RU": "Просто выполните git fetch!"
|
||||
},
|
||||
"startDialog": {
|
||||
"en_US": {
|
||||
|
@ -604,6 +606,79 @@ exports.level = {
|
|||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ru_RU": {
|
||||
"childViews": [
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"## Git Fetch",
|
||||
"",
|
||||
"Работа с удалёнными git репозиториями сводится к передаче данных _в_ и _из_ других репозиториев. До тех пор, пока мы может отправлять коммиты туда-обратно, мы можем делиться любыми изменениями, которые отслеживает git (следовательно, делиться новыми файлами, свежими идеями, любовными письмами и тд.).",
|
||||
"",
|
||||
"В этом уроке Вы научитесь тому, как извлекать данные _из_ удалённого репозитория -- и для этого у нас есть соответсвтующая команда `git fetch`.",
|
||||
"",
|
||||
"Вы увидете, что как только мы изменим представление нашего удалённого репозитория, наши _удалённые_ ветки обновятся соответствующим образом и отобразят это представление. Это связывает воедино предыдущий урок про удалённые репозитории"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "GitDemonstrationView",
|
||||
"options": {
|
||||
"beforeMarkdowns": [
|
||||
"Прежде чем углубляться в детали команды `git fetch`, давайте взглянем на её визуализацию в действии! Здесь у нас имеется удалённый репозиторий, который содержит в себе два коммита, отсутствующих в нашем локальном репозитории."
|
||||
],
|
||||
"afterMarkdowns": [
|
||||
"Вот и всё! Коммиты `C2` и `C3` были успешно скачены в наш локальный репозиторий, и наша удалённая ветка `o/master` отобразила эти изменения соответствующим образом."
|
||||
],
|
||||
"command": "git fetch",
|
||||
"beforeCommand": "git clone; git fakeTeamwork 2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"### Что делает fetch",
|
||||
"",
|
||||
"`git fetch` выполняет две и только две основные операции. А именно:",
|
||||
"",
|
||||
"* связывается с указанным удалённым репозиторием и забирает все те данные проекта, которых у вас ещё нет, при этом...",
|
||||
"* у вас должны появиться ссылки на все ветки из этого удалённого репозиториея (например, `o/master`)",
|
||||
"",
|
||||
"Фактически `git fetch` синхранизирует _локальное_ представление удалённых репозиториев с тем, что является _актуальным_ на текущий момент времени.",
|
||||
"",
|
||||
"На сколько Вы помните, в предыдущем уроке мы сказали о том, что удалённые ветки отображают состояние удалённых репозиториев _на тот момент_ когда вы 'общались' с ними в последний раз. `git fetch` является тем механизмом, который даёт Вам возможность общатся с удалёнными репозиториями! Надеюсь, что связь между удалёнными ветками и коммандой `git fetch` теперь прояснилась.",
|
||||
"",
|
||||
"`git fetch` обычно 'общается' с удалёнными репозиториями по средствам Интернета (через такие протоколы как `http://` или `git://`).",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"### Чего fetch не делает",
|
||||
"",
|
||||
"Важно отметить, что команда `git fetch` забирает данные в ваш _локальный_ репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент.",
|
||||
"",
|
||||
"Важно это помнить и понимать, потому что многие разработчики думают, что, запустив комманду `git fetch`, они приведут всю свою локальную работу к такому же виду как и на удалённом репозитории. Комманда всего-лишь скачивает все необходимые данные, но Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы. В следующих уроках мы научимся это делать :D",
|
||||
"",
|
||||
"Одним словом вы можете относится к `git fetch` как к процедуре скачивания."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"Чтобы выполнить уровень просто запустите `git fetch` и скачайте все коммиты!"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -10,7 +10,8 @@ exports.level = {
|
|||
"pt_BR": "Ramos remotos",
|
||||
"de_DE": "Branches auf entfernten Servern",
|
||||
"ja" : "リモートのブランチ",
|
||||
"fr_FR": "Les branches distantes"
|
||||
"fr_FR": "Les branches distantes",
|
||||
"ru_RU": "Удалённые ветки"
|
||||
},
|
||||
"hint": {
|
||||
"en_US": "Pay attention to the ordering -- commit on master first!",
|
||||
|
@ -20,7 +21,8 @@ exports.level = {
|
|||
"pt_BR": "Preste atenção na ordem: commite no master primeiro!",
|
||||
"de_DE": "Beachte die Sortierung -- committe zuerst auf dem master!",
|
||||
"ja" : "順番に注意 -- まずmasterに対してcommitしましょう",
|
||||
"fr_FR": "Prêtez attention à l'ordre -- les commits sur master d'abord !"
|
||||
"fr_FR": "Prêtez attention à l'ordre -- les commits sur master d'abord !",
|
||||
"ru_RU": "Уделяйте внимание очерёдности -- сперва commit на master"
|
||||
},
|
||||
"startDialog": {
|
||||
"en_US": {
|
||||
|
@ -389,7 +391,7 @@ exports.level = {
|
|||
}
|
||||
]
|
||||
},
|
||||
"zh_CN": {
|
||||
"zh_CN": {
|
||||
"childViews": [
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
|
@ -510,6 +512,67 @@ exports.level = {
|
|||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ru_RU": {
|
||||
"childViews": [
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"## Удалённые ветки в Git",
|
||||
"",
|
||||
"Теперь, когда Вы уже увидели `git clone` в действии, давайте углубимся в детали и посмотрим что же на самом деле изменилось.",
|
||||
"",
|
||||
"Во-первых, Вы должны были заметить что у нас появилась новая ветка в нашем локальном репозитории с именем `o/master`. Такой тип ветки называется _удалённой_ веткой; поскольку удалённые ветки играют важную и уникальную роль, они обладают рядом специальных свойств.",
|
||||
"",
|
||||
"Удалённые ветки отражают _состояние_ удалённых репозиториев (с того момента как Вы обращались к этим удалённым репозиториям в последний раз). Они позволяют Вам отслеживать и видить разницу между Вашими локальными наработками и тем что было сделано другими участниками -- важный шаг, который необходимо делать, прежде чем делиться своими наработками с другими.",
|
||||
"",
|
||||
"Важным свойством удалённых веток является тот факт, что когда Вы извлекаете их Вы отделяете (detaching) `HEAD`. Git делает это потому что Вы не можете работать непосредственно в этих ветках; сперва Вам необходимо сделать наработки где-либо, а уж затем делиться ими с удалёнными репозиториями (после чего Ваши удалённые ветки будут обновлены)."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"### Что такое `o/` в названии ветки ?",
|
||||
"",
|
||||
"Вы наверное догодались, что первый символ `o/` в названии ветки служит для обозначения именно удалённых веток. Да. Удалённые ветки также имеют (обязательное) правило именования -- они отображаются в формате:",
|
||||
"",
|
||||
"* `<удалённый репозиторий>/<имя ветки>`",
|
||||
"",
|
||||
"Следовательно, если Вы взгляние на имя ветки `o/master`, то здесь `master` - это имя ветки, а `o` - это имя удалённого репозитория.",
|
||||
"",
|
||||
"Большинство разработчиков именуют свои главные удалённые репозитории не как `o`, а как `origin`. Также общепринятым является именование удалённого репозитория как `origin`, когда Вы клонируете репозиторий командой `git clone`.",
|
||||
"",
|
||||
"К сожалению, полное имя `origin` не помещается на элементах дизайна наших уроков, поэтому мы используем краткое `o` :( Просто помните, когда Вы пользуетесь git в реальном проекте, Ваш удалённый репозиторий скорее всего будет называться `origin`!",
|
||||
"",
|
||||
"Давайте посмотрим на всё это в действии."
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "GitDemonstrationView",
|
||||
"options": {
|
||||
"beforeMarkdowns": [
|
||||
"Давайте извлечём (check out) удалённую ветку и посмотрим что произойдёт"
|
||||
],
|
||||
"afterMarkdowns": [
|
||||
"Как Вы можете видеть, git отделил (detached) `HEAD` и не обновил `o/master`, когда мы добавили новый коммит. Всё потому, что `o/master` обновится тогда и только тогда, когда обновится сам удалённый репозиторий."
|
||||
],
|
||||
"command": "git checkout o/master; git commit",
|
||||
"beforeCommand": "git clone"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ModalAlert",
|
||||
"options": {
|
||||
"markdowns": [
|
||||
"Для завершения уровня, выполните коммит единожды на `master`, а затем на `o/master` (предварительно переключившись на эту ветку). Это наглядно продемонстрирует поведение удалённых веток, а также покажет, как изменения влияют на состояние удалённых репозиториев."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue