TWO new levels, cherry-pick intro and rebase -i intro, and rebuild for Issue #120

This commit is contained in:
Peter Cottle 2013-07-28 20:38:04 -07:00
parent d4d7fb21c7
commit 15c2224d56
7 changed files with 122 additions and 125 deletions

View file

@ -18455,8 +18455,7 @@ exports.levelSequences = {
], ],
rebase: [ rebase: [
require('../../levels/rampup/cherryPick').level, require('../../levels/rampup/cherryPick').level,
require('../../levels/rampup/interactiveRebase').level, require('../../levels/rampup/interactiveRebase').level
require('../../levels/rebase/manyRebases').level
], ],
mixed: [ mixed: [
require('../../levels/mixed/grabbingOneCommit').level, require('../../levels/mixed/grabbingOneCommit').level,
@ -18464,6 +18463,7 @@ exports.levelSequences = {
require('../../levels/mixed/jugglingCommits2').level require('../../levels/mixed/jugglingCommits2').level
], ],
advanced: [ advanced: [
require('../../levels/rebase/manyRebases').level,
require('../../levels/advanced/multipleParents').level, require('../../levels/advanced/multipleParents').level,
require('../../levels/rebase/selectiveRebase').level require('../../levels/rebase/selectiveRebase').level
] ]
@ -20936,104 +20936,6 @@ require.define("/levels/rampup/interactiveRebase.js",function(require,module,exp
}); });
require.define("/levels/rebase/manyRebases.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = {
"compareOnlyMasterHashAgnostic": true,
"disabledMap": {
"git revert": true
},
"goalTreeString": "%7B%22branches%22%3A%7B%22master%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22master%22%7D%2C%22bugFix%22%3A%7B%22target%22%3A%22C3%27%22%2C%22id%22%3A%22bugFix%22%7D%2C%22side%22%3A%7B%22target%22%3A%22C6%27%22%2C%22id%22%3A%22side%22%7D%2C%22another%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22another%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C4%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C4%22%7D%2C%22C5%22%3A%7B%22parents%22%3A%5B%22C4%22%5D%2C%22id%22%3A%22C5%22%7D%2C%22C6%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C6%22%7D%2C%22C7%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C7%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%27%22%7D%2C%22C4%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C4%27%22%7D%2C%22C5%27%22%3A%7B%22parents%22%3A%5B%22C4%27%22%5D%2C%22id%22%3A%22C5%27%22%7D%2C%22C6%27%22%3A%7B%22parents%22%3A%5B%22C5%27%22%5D%2C%22id%22%3A%22C6%27%22%7D%2C%22C7%27%22%3A%7B%22parents%22%3A%5B%22C6%27%22%5D%2C%22id%22%3A%22C7%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22master%22%2C%22id%22%3A%22HEAD%22%7D%7D",
"solutionCommand": "git checkout bugFix;git rebase master;git checkout side;git rebase bugFix;git checkout another;git rebase side;git rebase another master",
"startTree": "{\"branches\":{\"master\":{\"target\":\"C2\",\"id\":\"master\"},\"bugFix\":{\"target\":\"C3\",\"id\":\"bugFix\"},\"side\":{\"target\":\"C6\",\"id\":\"side\"},\"another\":{\"target\":\"C7\",\"id\":\"another\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C0\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C4\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C5\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
"name": {
"en_US": "Rebasing over 9000 times",
"ko": "9천번이 넘는 리베이스",
"ja": "Rebasing over 9000 times",
"zh_CN": "N次Rebase"
},
"hint": {
"en_US": "Remember, the most efficient way might be to only update master at the end...",
"ja": "最も効率的なやり方はmasterを最後に更新するだけかもしれない・・・",
"ko": "아마도 master를 마지막에 업데이트하는 것이 가장 효율적인 방법일 것입니다...",
"zh_CN": "记住最后更新master分支可能是最高效的方法。"
},
"startDialog": {
"en_US": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Rebasing Multiple Branches",
"",
"Man, we have a lot of branches going on here! Let's rebase all the work from these branches onto master.",
"",
"Upper management is making this a bit trickier though -- they want the commits to all be in sequential order. So this means that our final tree should have `C7'` at the bottom, `C6'` above that, etc etc, etc all in order.",
"",
"If you mess up along the way, feel free to use `reset` to start over again. Be sure to check out our solution and see if you can do it in fewer commands!"
]
}
}
]
},
"ja": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 複数のブランチをリベースする",
"",
"さあ、いくつものブランチが出てきます。このブランチたち全てをmasterブランチにリベースしましょう。",
"",
"おエライさん方が今回の仕事を少しトリッキーにしてくれました ― コミットはすべて一列のシーケンシャルな状態にしてほしいそうです。つまり私たちが作るリポジトリの最終的なツリーの状態は、`C7'`が最後に来て、`C6'`がその一つ上に来て、、と順に積み重なるイメージです。",
"",
"試行錯誤してツリーが汚くなってきたら、`reset`コマンドを使ってツリーの状態を初期化してください。模範解答をチェックして、それよりも簡単なコマンドで済ませられるかどうか、を考えるのも忘れずに!"
]
}
}
]
},
"zh_CN": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 多分支衍合",
"",
"呐现在我们有很多分支啦让我们rebase这些分支的工作到 master 分支上吧。",
"",
"但是你的头头找了点麻烦 —— 他们希望得到有序的提交历史,也就是我们最终的结果是 `C7'` 在最底部,`C6'` 在它上面,以此类推。",
"",
"假如你搞砸了,没所谓的(虽然我不会告诉你用 `reset` 可以重新开始)。记得看看我们提供的答案,看你能否使用更少的命令完成任务!"
]
}
}
]
},
"ko": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 여러 브랜치를 리베이스(rebase)하기 ",
"",
"음, 여기 꽤 여러개의 브랜치가 있습니다! 이 브랜치들의 모든 작업내역을 master에 리베이스 해볼까요?",
"",
"윗선에서 일을 복잡하게 만드네요 -- 그 분들이 이 모든 커밋들을 순서에 맞게 정렬하라고 합니다. 그럼 결국 우리의 최종 목표 트리는 제일 아래에 `C7'` 커밋, 그 위에 `C6'` 커밋, 또 그 위에 순서대로 보여합니다.",
"",
"만일 작업중에 내용이 꼬인다면, `reset`이라고 쳐서 처음부터 다시 시작할 수 있습니다. 모범 답안을 확인해 보시고, 혹시 더 적은 수의 커맨드로 해결할 수 있는지 알아보세요!"
]
}
}
]
}
}
};
});
require.define("/levels/mixed/grabbingOneCommit.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = { require.define("/levels/mixed/grabbingOneCommit.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = {
"compareOnlyMasterHashAgnosticWithAsserts": true, "compareOnlyMasterHashAgnosticWithAsserts": true,
"goalAsserts": { "goalAsserts": {
@ -21074,7 +20976,7 @@ require.define("/levels/mixed/grabbingOneCommit.js",function(require,module,expo
"", "",
"All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!", "All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!",
"", "",
"Only problem is that I now need to get my `bugFix` back into the `master` branch! I could simply fast-forward `master`, but then `master` would get all my debug statements." "Only problem is that I now need to get my `bugFix` back into the `master` branch. If I simply fast-forwarded `master`, then `master` would get all my debug statements which is undesirable. There has to be another way..."
] ]
} }
}, },
@ -21082,14 +20984,12 @@ require.define("/levels/mixed/grabbingOneCommit.js",function(require,module,expo
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is where the magic of Git comes in. There are a few ways to do this, but the two most straightforward ways are:", "We need to tell git to copy only one of the commits over. This is just like the levels earlier on moving work around -- we can use the same commands:",
"", "",
"* `git rebase -i`", "* `git rebase -i`",
"* `git cherry-pick`", "* `git cherry-pick`",
"", "",
"Interactive (the `-i`) rebasing allows you to choose which commits you want to keep or discard. It also allows you to reorder commits. This can be helpful if you want to toss out some work.", "To achieve this goal."
"",
"Cherry-picking allows you to pick individual commits and plop them down on top of `HEAD`"
] ]
} }
}, },
@ -21097,12 +20997,13 @@ require.define("/levels/mixed/grabbingOneCommit.js",function(require,module,expo
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is a later level so we will leave it up to you to decide, but in order to complete the level, make sure `master` receives the commit that `bugFix` references." "This is a later level so we will leave it up to you to decide which command you want to use, but in order to complete the level, make sure `master` receives the commit that `bugFix` references."
] ]
} }
} }
] ]
}, },
// INTL out of sync :(
"ja": { "ja": {
"childViews": [ "childViews": [
{ {
@ -21627,6 +21528,104 @@ require.define("/levels/mixed/jugglingCommits2.js",function(require,module,expor
}; };
}); });
require.define("/levels/rebase/manyRebases.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = {
"compareOnlyMasterHashAgnostic": true,
"disabledMap": {
"git revert": true
},
"goalTreeString": "%7B%22branches%22%3A%7B%22master%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22master%22%7D%2C%22bugFix%22%3A%7B%22target%22%3A%22C3%27%22%2C%22id%22%3A%22bugFix%22%7D%2C%22side%22%3A%7B%22target%22%3A%22C6%27%22%2C%22id%22%3A%22side%22%7D%2C%22another%22%3A%7B%22target%22%3A%22C7%27%22%2C%22id%22%3A%22another%22%7D%7D%2C%22commits%22%3A%7B%22C0%22%3A%7B%22parents%22%3A%5B%5D%2C%22id%22%3A%22C0%22%2C%22rootCommit%22%3Atrue%7D%2C%22C1%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C1%22%7D%2C%22C2%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C2%22%7D%2C%22C3%22%3A%7B%22parents%22%3A%5B%22C1%22%5D%2C%22id%22%3A%22C3%22%7D%2C%22C4%22%3A%7B%22parents%22%3A%5B%22C0%22%5D%2C%22id%22%3A%22C4%22%7D%2C%22C5%22%3A%7B%22parents%22%3A%5B%22C4%22%5D%2C%22id%22%3A%22C5%22%7D%2C%22C6%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C6%22%7D%2C%22C7%22%3A%7B%22parents%22%3A%5B%22C5%22%5D%2C%22id%22%3A%22C7%22%7D%2C%22C3%27%22%3A%7B%22parents%22%3A%5B%22C2%22%5D%2C%22id%22%3A%22C3%27%22%7D%2C%22C4%27%22%3A%7B%22parents%22%3A%5B%22C3%27%22%5D%2C%22id%22%3A%22C4%27%22%7D%2C%22C5%27%22%3A%7B%22parents%22%3A%5B%22C4%27%22%5D%2C%22id%22%3A%22C5%27%22%7D%2C%22C6%27%22%3A%7B%22parents%22%3A%5B%22C5%27%22%5D%2C%22id%22%3A%22C6%27%22%7D%2C%22C7%27%22%3A%7B%22parents%22%3A%5B%22C6%27%22%5D%2C%22id%22%3A%22C7%27%22%7D%7D%2C%22HEAD%22%3A%7B%22target%22%3A%22master%22%2C%22id%22%3A%22HEAD%22%7D%7D",
"solutionCommand": "git checkout bugFix;git rebase master;git checkout side;git rebase bugFix;git checkout another;git rebase side;git rebase another master",
"startTree": "{\"branches\":{\"master\":{\"target\":\"C2\",\"id\":\"master\"},\"bugFix\":{\"target\":\"C3\",\"id\":\"bugFix\"},\"side\":{\"target\":\"C6\",\"id\":\"side\"},\"another\":{\"target\":\"C7\",\"id\":\"another\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C0\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C4\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C5\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
"name": {
"en_US": "Rebasing over 9000 times",
"ko": "9천번이 넘는 리베이스",
"ja": "Rebasing over 9000 times",
"zh_CN": "N次Rebase"
},
"hint": {
"en_US": "Remember, the most efficient way might be to only update master at the end...",
"ja": "最も効率的なやり方はmasterを最後に更新するだけかもしれない・・・",
"ko": "아마도 master를 마지막에 업데이트하는 것이 가장 효율적인 방법일 것입니다...",
"zh_CN": "记住最后更新master分支可能是最高效的方法。"
},
"startDialog": {
"en_US": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Rebasing Multiple Branches",
"",
"Man, we have a lot of branches going on here! Let's rebase all the work from these branches onto master.",
"",
"Upper management is making this a bit trickier though -- they want the commits to all be in sequential order. So this means that our final tree should have `C7'` at the bottom, `C6'` above that, etc etc, etc all in order.",
"",
"If you mess up along the way, feel free to use `reset` to start over again. Be sure to check out our solution and see if you can do it in fewer commands!"
]
}
}
]
},
"ja": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 複数のブランチをリベースする",
"",
"さあ、いくつものブランチが出てきます。このブランチたち全てをmasterブランチにリベースしましょう。",
"",
"おエライさん方が今回の仕事を少しトリッキーにしてくれました ― コミットはすべて一列のシーケンシャルな状態にしてほしいそうです。つまり私たちが作るリポジトリの最終的なツリーの状態は、`C7'`が最後に来て、`C6'`がその一つ上に来て、、と順に積み重なるイメージです。",
"",
"試行錯誤してツリーが汚くなってきたら、`reset`コマンドを使ってツリーの状態を初期化してください。模範解答をチェックして、それよりも簡単なコマンドで済ませられるかどうか、を考えるのも忘れずに!"
]
}
}
]
},
"zh_CN": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 多分支衍合",
"",
"呐现在我们有很多分支啦让我们rebase这些分支的工作到 master 分支上吧。",
"",
"但是你的头头找了点麻烦 —— 他们希望得到有序的提交历史,也就是我们最终的结果是 `C7'` 在最底部,`C6'` 在它上面,以此类推。",
"",
"假如你搞砸了,没所谓的(虽然我不会告诉你用 `reset` 可以重新开始)。记得看看我们提供的答案,看你能否使用更少的命令完成任务!"
]
}
}
]
},
"ko": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### 여러 브랜치를 리베이스(rebase)하기 ",
"",
"음, 여기 꽤 여러개의 브랜치가 있습니다! 이 브랜치들의 모든 작업내역을 master에 리베이스 해볼까요?",
"",
"윗선에서 일을 복잡하게 만드네요 -- 그 분들이 이 모든 커밋들을 순서에 맞게 정렬하라고 합니다. 그럼 결국 우리의 최종 목표 트리는 제일 아래에 `C7'` 커밋, 그 위에 `C6'` 커밋, 또 그 위에 순서대로 보여합니다.",
"",
"만일 작업중에 내용이 꼬인다면, `reset`이라고 쳐서 처음부터 다시 시작할 수 있습니다. 모범 답안을 확인해 보시고, 혹시 더 적은 수의 커맨드로 해결할 수 있는지 알아보세요!"
]
}
}
]
}
}
};
});
require.define("/levels/advanced/multipleParents.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = { require.define("/levels/advanced/multipleParents.js",function(require,module,exports,__dirname,__filename,process,global){exports.level = {
"goalTreeString": "{\"branches\":{\"master\":{\"target\":\"C7\",\"id\":\"master\"},\"bugWork\":{\"target\":\"C2\",\"id\":\"bugWork\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C2\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C4\",\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C6\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}", "goalTreeString": "{\"branches\":{\"master\":{\"target\":\"C7\",\"id\":\"master\"},\"bugWork\":{\"target\":\"C2\",\"id\":\"bugWork\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C2\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C4\",\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C6\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
"solutionCommand": "git branch bugWork master^^2^", "solutionCommand": "git branch bugWork master^^2^",
@ -36158,8 +36157,7 @@ exports.levelSequences = {
], ],
rebase: [ rebase: [
require('../../levels/rampup/cherryPick').level, require('../../levels/rampup/cherryPick').level,
require('../../levels/rampup/interactiveRebase').level, require('../../levels/rampup/interactiveRebase').level
require('../../levels/rebase/manyRebases').level
], ],
mixed: [ mixed: [
require('../../levels/mixed/grabbingOneCommit').level, require('../../levels/mixed/grabbingOneCommit').level,
@ -36167,6 +36165,7 @@ exports.levelSequences = {
require('../../levels/mixed/jugglingCommits2').level require('../../levels/mixed/jugglingCommits2').level
], ],
advanced: [ advanced: [
require('../../levels/rebase/manyRebases').level,
require('../../levels/advanced/multipleParents').level, require('../../levels/advanced/multipleParents').level,
require('../../levels/rebase/selectiveRebase').level require('../../levels/rebase/selectiveRebase').level
] ]
@ -37714,7 +37713,7 @@ require.define("/src/levels/mixed/grabbingOneCommit.js",function(require,module,
"", "",
"All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!", "All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!",
"", "",
"Only problem is that I now need to get my `bugFix` back into the `master` branch! I could simply fast-forward `master`, but then `master` would get all my debug statements." "Only problem is that I now need to get my `bugFix` back into the `master` branch. If I simply fast-forwarded `master`, then `master` would get all my debug statements which is undesirable. There has to be another way..."
] ]
} }
}, },
@ -37722,14 +37721,12 @@ require.define("/src/levels/mixed/grabbingOneCommit.js",function(require,module,
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is where the magic of Git comes in. There are a few ways to do this, but the two most straightforward ways are:", "We need to tell git to copy only one of the commits over. This is just like the levels earlier on moving work around -- we can use the same commands:",
"", "",
"* `git rebase -i`", "* `git rebase -i`",
"* `git cherry-pick`", "* `git cherry-pick`",
"", "",
"Interactive (the `-i`) rebasing allows you to choose which commits you want to keep or discard. It also allows you to reorder commits. This can be helpful if you want to toss out some work.", "To achieve this goal."
"",
"Cherry-picking allows you to pick individual commits and plop them down on top of `HEAD`"
] ]
} }
}, },
@ -37737,12 +37734,13 @@ require.define("/src/levels/mixed/grabbingOneCommit.js",function(require,module,
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is a later level so we will leave it up to you to decide, but in order to complete the level, make sure `master` receives the commit that `bugFix` references." "This is a later level so we will leave it up to you to decide which command you want to use, but in order to complete the level, make sure `master` receives the commit that `bugFix` references."
] ]
} }
} }
] ]
}, },
// INTL out of sync :(
"ja": { "ja": {
"childViews": [ "childViews": [
{ {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
build/bundle.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -439,7 +439,7 @@
For a much easier time perusing the source, see the individual files at: For a much easier time perusing the source, see the individual files at:
https://github.com/pcottle/learnGitBranching https://github.com/pcottle/learnGitBranching
--> -->
<script src="build/bundle.min.1a803a3b.js"></script> <script src="build/bundle.min.2a465cfd.js"></script>
<!-- The advantage of github pages: super-easy, simple, slick static hostic. <!-- The advantage of github pages: super-easy, simple, slick static hostic.
The downside? No raw logs to parse for analytics, so I have to include The downside? No raw logs to parse for analytics, so I have to include

View file

@ -15,8 +15,7 @@ exports.levelSequences = {
], ],
rebase: [ rebase: [
require('../../levels/rampup/cherryPick').level, require('../../levels/rampup/cherryPick').level,
require('../../levels/rampup/interactiveRebase').level, require('../../levels/rampup/interactiveRebase').level
require('../../levels/rebase/manyRebases').level
], ],
mixed: [ mixed: [
require('../../levels/mixed/grabbingOneCommit').level, require('../../levels/mixed/grabbingOneCommit').level,
@ -24,6 +23,7 @@ exports.levelSequences = {
require('../../levels/mixed/jugglingCommits2').level require('../../levels/mixed/jugglingCommits2').level
], ],
advanced: [ advanced: [
require('../../levels/rebase/manyRebases').level,
require('../../levels/advanced/multipleParents').level, require('../../levels/advanced/multipleParents').level,
require('../../levels/rebase/selectiveRebase').level require('../../levels/rebase/selectiveRebase').level
] ]

View file

@ -38,7 +38,7 @@ exports.level = {
"", "",
"All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!", "All of these debugging / print statements are in their own branches. Finally I track down the bug, fix it, and rejoice!",
"", "",
"Only problem is that I now need to get my `bugFix` back into the `master` branch! I could simply fast-forward `master`, but then `master` would get all my debug statements." "Only problem is that I now need to get my `bugFix` back into the `master` branch. If I simply fast-forwarded `master`, then `master` would get all my debug statements which is undesirable. There has to be another way..."
] ]
} }
}, },
@ -46,14 +46,12 @@ exports.level = {
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is where the magic of Git comes in. There are a few ways to do this, but the two most straightforward ways are:", "We need to tell git to copy only one of the commits over. This is just like the levels earlier on moving work around -- we can use the same commands:",
"", "",
"* `git rebase -i`", "* `git rebase -i`",
"* `git cherry-pick`", "* `git cherry-pick`",
"", "",
"Interactive (the `-i`) rebasing allows you to choose which commits you want to keep or discard. It also allows you to reorder commits. This can be helpful if you want to toss out some work.", "To achieve this goal."
"",
"Cherry-picking allows you to pick individual commits and plop them down on top of `HEAD`"
] ]
} }
}, },
@ -61,12 +59,13 @@ exports.level = {
"type": "ModalAlert", "type": "ModalAlert",
"options": { "options": {
"markdowns": [ "markdowns": [
"This is a later level so we will leave it up to you to decide, but in order to complete the level, make sure `master` receives the commit that `bugFix` references." "This is a later level so we will leave it up to you to decide which command you want to use, but in order to complete the level, make sure `master` receives the commit that `bugFix` references."
] ]
} }
} }
] ]
}, },
// INTL out of sync :(
"ja": { "ja": {
"childViews": [ "childViews": [
{ {