分享一个学习git的图形化学习网站-Learn Git Branching参考答案整理
分享一個(gè)學(xué)習(xí)git的圖形化學(xué)習(xí)網(wǎng)站:Learn Git Branching 初次學(xué)習(xí)點(diǎn)這里
這個(gè)鏈接可以跳過前面的幫助信息直接進(jìn)入:Learn Git Branching 老手點(diǎn)這里
LearnGitBranching 是什么
LearnGitBranching是一個(gè)git仿真沙盒,提供一系列的交互式學(xué)習(xí)指導(dǎo)/挑戰(zhàn),用來加快學(xué)習(xí)git提交樹如何工作。 此項(xiàng)目由pcottle發(fā)表在github上,并被翻譯到了法語、韓語、日語以及中文。
LearnGitBranching的主界面左邊是模擬終端窗口,右邊是圖示區(qū)。圖示區(qū)用圖形表明了git代碼庫當(dāng)前的提交記錄、分支、HEAD指向等。
目錄
- LearnGitBranching 是什么
- LearnGitBranching 如何使用
- 游戲的控制指令
- 基礎(chǔ)篇
- 1.Git Commit
- 2.Git Branch
- 3.Git Merge
- 4.Git Rebase
- 高級篇
- 1.分離 Head
- 2.相對引用 ^
- 3.相對引用2 ~
- 4.撤銷變更
- 移動(dòng)提交記錄
- 1.Git Cherry-pick
- 2.交互式 rebase
- 移動(dòng)提交記錄
- 1.只取一個(gè)提交記錄
- 2.提交的技巧 #1
- 3.提交的技巧 #2
- 4.Git Tag
- 5.Git Describe
- 高級話題
- 1.多次 Rebase
- 2.兩個(gè)父節(jié)點(diǎn)
- 3.糾纏不清的分支
- 高能
- 遠(yuǎn)程
- 1.Git Clone
- 2.遠(yuǎn)程分支
- 3.Git Fetch
- 4.Git Pull
- 5.模擬團(tuán)隊(duì)合作
- 6.Git Push
- 7.偏離的提交歷史
- 關(guān)于 origin 和它的周邊 —— Git 遠(yuǎn)程倉庫高級操作
- 1.推送主分支
- 2.合并遠(yuǎn)程倉庫
- 3.遠(yuǎn)程追蹤
- 3.遠(yuǎn)程追蹤
- 4.Git Push的參數(shù)
- 5.Git Push的參數(shù) 2
- 6.Git Fetch的參數(shù)
- 7.沒有source的source
- 8.Git Pull的參數(shù)
LearnGitBranching 如何使用
LearnGitBranching通過關(guān)卡的形式,逐步展開對git的學(xué)習(xí)。每一關(guān)開始是對要學(xué)習(xí)的主題的一些介紹,包含操作原理,要使用到的命令,以及命令執(zhí)行后的圖示。介紹完成之后,會(huì)顯示這一關(guān)的goal。在輸入命令并執(zhí)行后,右邊的代碼庫圖示會(huì)自動(dòng)更新以呈現(xiàn)最新狀態(tài)。
根據(jù)關(guān)卡題目,輸入并執(zhí)行正確的命令,當(dāng)程序匹配到通關(guān)需要的結(jié)果時(shí)即可以過關(guān)。
如果要跳過每一關(guān)開始的介紹,可以按Esc。右下角的兩個(gè)按鈕分別是幫助菜單與語言選擇。
游戲的控制指令
| reset | 重新開始本關(guān)卡 |
| levels | 選擇關(guān)卡 |
| objective | 顯示提示信息 |
| show goal | 顯示目標(biāo) |
| hide goal | 隱藏目標(biāo) |
| undo | 撤銷 |
| help general | 顯示程序幫助 |
| help level | 顯示當(dāng)前關(guān)卡幫助 |
下面是Learn Git Branching 闖關(guān)答案總結(jié)整理,建議先練習(xí),不會(huì)的部分再參考
基礎(chǔ)篇
1.Git Commit
git commit git commit2.Git Branch
git branch bugFix git checkout bugFix3.Git Merge
git checkout -b bugFix git commit git checkout master git commit git merge bugFix4.Git Rebase
git checkout -b bugFix git commit git checkout master git commit git checkout bugFix git rebase master高級篇
1.分離 Head
git checkout c42.相對引用 ^
最優(yōu)解:
git checkout bugFix^其他解:
git chekcout bugFix git checkout HEAD^3.相對引用2 ~
可以直接使用 -f 選項(xiàng)讓分支指向另一個(gè)提交。
git branch -f master HEAD~3
上面的命令會(huì)將 master 分支強(qiáng)制指向 HEAD 的第 3 級父提交。
git branch -f master c6 git branch -f bugFix c0 git checkout c14.撤銷變更
reset: (local)
git reset通過把分支記錄回退幾個(gè)提交記錄來實(shí)現(xiàn)撤銷改動(dòng)。你可以將這想象成“改寫歷史”。git reset 向上移動(dòng)分支,原來指向的提交記錄就跟從來沒有提交過一樣。
revert: (pushed)
雖然在你的本地分支中使用git reset很方便,但是這種“改寫歷史”的方法對大家一起使用的遠(yuǎn)程分支是無效的哦!為了撤銷更改并分享給別人,我們需要使用git revert。
revert 之后就可以把你的更改推送到遠(yuǎn)程倉庫與別人分享啦
或
git reset C1 git checkout pushed git revert C2移動(dòng)提交記錄
1.Git Cherry-pick
git cherry-pick c3 c4 c72.交互式 rebase
交互式 rebase 指的是使用帶參數(shù) --interactive 的 rebase 命令, 簡寫為 -i
如果你在命令后增加了這個(gè)選項(xiàng), Git 會(huì)打開一個(gè) UI 界面并列出將要被復(fù)制到目標(biāo)分支的備選提交記錄,它還會(huì)顯示每個(gè)提交記錄的哈希值和提交說明,提交說明有助于你理解這個(gè)提交進(jìn)行了哪些更改。
git rebase -i HEAD~4移動(dòng)提交記錄
1.只取一個(gè)提交記錄
git rebase -i HEAD~3 git branch -f master bugFix或者
git cherry-pick bugFix git branch -f master bugFix2.提交的技巧 #1
git rebase -i HEAD~2 #修改C2和C3的順序 git commit --amend git rebase -i HEAD~2 #修改C3'和C2''順序 git branch -f master3.提交的技巧 #2
git checkout master git cherry-pick newImage git commit --amend git cherry-pick caption4.Git Tag
git tag v0 c1 git tag v1 c2 git checkout c25.Git Describe
由于標(biāo)簽在代碼庫中起著“錨點(diǎn)”的作用,Git 還為此專門設(shè)計(jì)了一個(gè)命令用來描述離你最近的錨點(diǎn)(也就是標(biāo)簽),它就是 git describe!
Git Describe 能幫你在提交歷史中移動(dòng)了多次以后找到方向;當(dāng)你用 git bisect(一個(gè)查找產(chǎn)生 Bug 的提交記錄的指令)找到某個(gè)提交記錄時(shí),或者是當(dāng)你坐在你那剛剛度假回來的同事的電腦前時(shí), 可能會(huì)用到這個(gè)命令。
git describe 的語法是:
git describe <ref>可以是任何能被 Git 識別成提交記錄的引用,如果你沒有指定的話,Git 會(huì)以你目前所檢出的位置(HEAD)。
它輸出的結(jié)果是這樣的:
<tag>_<numCommits>_g<hash>tag 表示的是離 ref 最近的標(biāo)簽, numCommits 是表示這個(gè) ref 與 tag 相差有多少個(gè)提交記錄, hash 表示的是你所給定的 ref 所表示的提交記錄哈希值的前幾位。
當(dāng) ref 提交記錄上有某個(gè)標(biāo)簽時(shí),則只輸出標(biāo)簽名稱。
git commit高級話題
1.多次 Rebase
git rebase master bugFix git rebase bugFix side git rebase side another git branch -f master another2.兩個(gè)父節(jié)點(diǎn)
git branch bugWork HEAD~^2~3.糾纏不清的分支
git checkout one git cherry-pick c4 c3 c2 git checkout two git cherry-pick c5 c4 c3 c2 git branch -f three c2高能
查看答案命令
show solution遠(yuǎn)程
Push & Pull —— Git 遠(yuǎn)程倉庫!
1.Git Clone
git clone2.遠(yuǎn)程分支
git commit git checkout o/master git commit3.Git Fetch
git fetch4.Git Pull
git pull就是git fetch和git merge 的縮寫。
git pull5.模擬團(tuán)隊(duì)合作
git clone git fakeTeamwork 2 git commit git pull6.Git Push
git commit git commit git push7.偏離的提交歷史
git pull --rebase就是fetch和rebase的簡寫。
git clone git fakeTeamwork 1 git commit git pull --rebase git push關(guān)于 origin 和它的周邊 —— Git 遠(yuǎn)程倉庫高級操作
1.推送主分支
git fetch git rebase o/master side1 git rebase side1 side2 git rebase side2 side3 git rebase side3 master git push2.合并遠(yuǎn)程倉庫
git checkout master git pull origin master git merge side1 git merge side2 git merge side3 git push origin master3.遠(yuǎn)程追蹤
git checkout -b side o/master git commit git pull --rebase git push3.遠(yuǎn)程追蹤
git branch -f side master git commit git pull --rebase git push4.Git Push的參數(shù)
git push origin master git push origin foo5.Git Push的參數(shù) 2
git push origin foo:master git push origin master^:foo6.Git Fetch的參數(shù)
git fetch origin master^:foo git fetch origin foo:master git checkout foo git merge master或
git pull origin master^:foo git pull origin foo:master git branch -f foo git checkout foo7.沒有source的source
git pull origin :bar git push origin :foo8.Git Pull的參數(shù)
git pull origin bar:foo git pull origin master:side都看到這了,點(diǎn)個(gè)贊再走唄~~
總結(jié)
以上是生活随笔為你收集整理的分享一个学习git的图形化学习网站-Learn Git Branching参考答案整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSDN博文编辑技巧-如何去除上传的图片
- 下一篇: OBD技术速成——J1850协议概述