【Git】Learn Git Branching 總結(jié)

Learn Git Branching 總結(jié)

鏈接:https://learngitbranching.js.org

主要

基礎(chǔ)篇

1.Git Commit
git commit
git commit
2.Git Branch
git branch bugFix
git checkout bugFix
3.Git Merge
git checkout -b bugFix
git commit
git checkout master
git commit
git merge bugFix
4.Git Rebase
git checkout -b bugFix
git commit
git checkout master
git commit
git checkout bugFix
git rebase master

高級(jí)篇

1.分離 Head
git checkout c4

2.相對(duì)引用 ^
最優(yōu)解:

git checkout bugFix^

其他解:

git chekcout bugFix
git checkout HEAD^
3.相對(duì)引用2 ~
git branch -f master c6
git branch -f bugFix c0
git checkout c1
4.撤銷變更

reset: (local)
git reset通過(guò)把分支記錄回退幾個(gè)提交記錄來(lái)實(shí)現(xiàn)撤銷改動(dòng)肢藐。你可以將這想象成“改寫歷史”涕蚤。git reset 向上移動(dòng)分支馆铁,原來(lái)指向的提交記錄就跟從來(lái)沒(méi)有提交過(guò)一樣咕缎。

revert: (pushed)
雖然在你的本地分支中使用git reset很方便匹层,但是這種“改寫歷史”的方法對(duì)大家一起使用的遠(yuǎn)程分支是無(wú)效的哦呵晨!為了撤銷更改并分享給別人吐限,我們需要使用git revert

git reset HEAD^
git checkout pushed
git revert HEAD

移動(dòng)提交記錄

1.Git Cherry-pick
git cherry-pick c3 c5 c7
2.交互式 rebase
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 bugFix
2.提交的技巧 #1
git rebase -i HEAD~2 #修改C2和C3的順序
git commit --amend
git rebase -i HEAD~2 #修改C3'和C2''順序
git branch -f master
3.提交的技巧 #2
git checkout master
git cherry-pick newImage
git commit --amend
git cherry-pick caption
4.Git Tag
git tag v0 c1
git tag v1 c2
git checkout c2
5.Git Describe

由于標(biāo)簽在代碼庫(kù)中起著“錨點(diǎn)”的作用天揖,Git 還為此專門設(shè)計(jì)了一個(gè)命令用來(lái)描述離你最近的錨點(diǎn)(也就是標(biāo)簽)夺欲,它就是 git describe

Git Describe 能幫你在提交歷史中移動(dòng)了多次以后找到方向今膊;當(dāng)你用 git bisect(一個(gè)查找產(chǎn)生 Bug 的提交記錄的指令)找到某個(gè)提交記錄時(shí)些阅,或者是當(dāng)你坐在你那剛剛度假回來(lái)的同事的電腦前時(shí), 可能會(huì)用到這個(gè)命令斑唬。

git describe 的語(yǔ)法是:

git describe <ref>

<ref> 可以是任何能被 Git 識(shí)別成提交記錄的引用扑眉,如果你沒(méi)有指定的話,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

高級(jí)話題

1.多次 Rebase
git rebase master bugFix
git rebase bugFix side
git rebase side another
git branch -f master another
2.兩個(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

整理到最后發(fā)現(xiàn)可以看答案
......

show solution

還是非常合理的
......
我還要不要繼續(xù)整理了
......
再過(guò)一遍吧
......


遠(yuǎn)程

Push & Pull —— Git 遠(yuǎn)程倉(cāng)庫(kù)献起!

1.Git Clone
git clone
2.遠(yuǎn)程分支
git commit
git checkout o/master
git commit
3.Git Fetch
git fetch
4.Git Pull

git pull就是git fetchgit merge <just-fetched-branch>的縮寫洋访。

git pull
5.模擬團(tuán)隊(duì)合作
git clone
git fakeTeamwork 2
git commit
git pull
6.Git Push
git commit
git commit 
git push
7.偏離的提交歷史

git pull --rebase就是fetchrebase的簡(jiǎn)寫。

git clone
git fakeTeamwork 1
git commit
git pull --rebase
git push

關(guān)于 origin 和它的周邊 —— Git 遠(yuǎn)程倉(cāng)庫(kù)高級(jí)操作

1.推送主分支
git fetch
git rebase o/master side1
git rebase side1 side2
git rebase side2 side3
git rebase side3 master
git push
2.合并遠(yuǎn)程倉(cāng)庫(kù)
git checkout master
git pull origin master
git merge side1
git merge side2
git merge side3
git push origin master
3.遠(yuǎn)程追蹤
git checkout -b side o/master
git commit
git pull --rebase
git push
3.遠(yuǎn)程追蹤
git branch -f side master
git commit
git pull --rebase
git push
4.Git Push的參數(shù)
git push origin master
git push origin foo
5.Git Push的參數(shù) 2
git push origin foo:master
git push origin master^:foo
6.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 foo
7.沒(méi)有source的source
git pull origin :bar
git push origin :foo
8.Git Pull的參數(shù)
git pull origin bar:foo
git pull origin master:side
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谴餐,一起剝皮案震驚了整個(gè)濱河市姻政,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岂嗓,老刑警劉巖汁展,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異厌殉,居然都是意外死亡食绿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門公罕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)器紧,“玉大人得问,你說(shuō)我怎么就攤上這事敦跌。” “怎么了膏潮?”我有些...
    開(kāi)封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵罐柳,是天一觀的道長(zhǎng)掌腰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)硝清,這世上最難降的妖魔是什么辅斟? 我笑而不...
    開(kāi)封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮芦拿,結(jié)果婚禮上士飒,老公的妹妹穿的比我還像新娘。我一直安慰自己蔗崎,他們只是感情好酵幕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著缓苛,像睡著了一般芳撒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上未桥,一...
    開(kāi)封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天笔刹,我揣著相機(jī)與錄音,去河邊找鬼冬耿。 笑死舌菜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亦镶。 我是一名探鬼主播日月,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼袱瓮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了爱咬?” 一聲冷哼從身側(cè)響起尺借,我...
    開(kāi)封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎精拟,沒(méi)想到半個(gè)月后燎斩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡串前,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年瘫里,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荡碾。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谨读,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坛吁,到底是詐尸還是另有隱情劳殖,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布拨脉,位于F島的核電站哆姻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏玫膀。R本人自食惡果不足惜矛缨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帖旨。 院中可真熱鬧箕昭,春花似錦、人聲如沸解阅。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)货抄。三九已至述召,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蟹地,已是汗流浹背积暖。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怪与,地道東北人夺刑。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像琼梆,于是被迫代替她去往敵國(guó)和親性誉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,491評(píng)論 1 26
  • 一茎杂、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git c...
    LOVE_晴天閱讀 2,327評(píng)論 0 10
  • 1错览,查看所有遠(yuǎn)程分支:%git branch -r 2, 拉取遠(yuǎn)程分支并創(chuàng)建本地分支git checkout -...
    will666閱讀 2,075評(píng)論 0 18
  • git 使用筆記 git原理: 文件(blob)對(duì)象,樹(shù)(tree)對(duì)象煌往,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,778評(píng)論 0 10
  • 喜歡抱怨的人刽脖,到處撒播毒藥羞海,如果你功力深厚,能阻擋它的侵蝕曲管;如果內(nèi)力不夠却邓,很容易被侵蝕。 王同事經(jīng)常在公司抱怨院水,各...
    芬芬的小屋閱讀 555評(píng)論 7 6