Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git Branch

Git Branch

Git 小聚:Git 跟你想的不一樣(Part 1)

高見龍

June 04, 2018
Tweet

More Decks by 高見龍

Other Decks in Technology

Transcript

  1. (JU᪑你૝తෆҰᒬ
    高見龍
    1BSU෼ࢧ

    View Slide

  2. ൣྫ檔Ҋ
    https://bit.ly/2IQEwUR

    View Slide

  3. ࣗզհ঺

    View Slide

  4. a.k.a Eddie
    愛現! 喜歡冷門的玩具
    Ruby/Rails/iOS app 開發者、講師
    Ruby 技術推廣、教育、諮詢
    台灣、日本等國內外 Ruby 技術研討會講者
    目前於五倍紅寶石擔任紅寶石鑑定商職務
    部落格:https://kaochenlong.com
    高見龍
    photo by Eddie
    @eddiekao

    View Slide

  5. 發售中!
    https://railsbook.tw/

    View Slide

  6. 發售中!
    https://gitbook.tw/

    View Slide

  7. ։࢝೭લ

    View Slide

  8. ༗ᔒ༗ୈҰ࣍ᡒա
    (JUṜࡾݸࣈ฼తਓ
    ໰୊

    View Slide

  9. https://gitbook.tw/

    View Slide

  10. ޻࡞্༗ࡏ༻(JUɼୠ୞
    ༗೺(JUᙛ'51ࡏ༻ʁ
    ໰୊

    View Slide

  11. ိݯɿIUUQTYLDEDPN
    ʮṜबੋ(JUɼሏ࢖༻Ұछ኷ඬ྄
    త෼ࢄࣜᅷܕཧ࿦໛ܕతٕज़ိ௥
    ᪦զ၇ሢҊత㚎༰ʯ
    ʮࠅʂṜཁዎኄ༻ʁʯ
    ʮෆ஌ಓɼେ֓बੋهҰࠣऴ୺ػ
    ࢦྩ
    ɼ
    ࢦྩᏏҰᏏ䈕Ҋब။ಉ㑊ྃ
    ɻ
    ೗Ռᚙੜ໰୊ɼઌ೺䈕Ҋઌඋ㟨Ұ
    㟨౸ผత஍ํɼ೺ሢҊ䜤ᎃɼવޙ
    ॏ৽ԼࡌҰ㟨શ৽తሢҊबߦྃ
    ɻ
    ʯ

    View Slide

  12. ຊจ։࢝

    View Slide

  13. ൛ຊ߇੍
    7FSTJPO$POUSPM

    View Slide

  14. ! 那個...你有聽過 Git 嗎? 那是什麼?
    "
    啊就一種分散式的版本控制系統啊!
    # 分散? 版本?
    ?
    ?
    ? ?

    View Slide

  15. ॄኄ൛ຊ ཁ߇੍ॄኄ
    ໰୊

    View Slide

  16. ॴҎɼॄኄੋʮ൛ຊʯ
    ໰୊

    View Slide

  17. 版本2 版本3 版本4 版本5
    版本1
    2016/2/8 2016/2/10 2016/5/8 2016/8/22 2016/11/28

    View Slide

  18. ෼ࢄࣜ
    ໰୊

    View Slide

  19. $

    Sherly
    "

    Eddie
    %

    Emily
    &

    Picasso
    Octocat
    我做好三角
    型囉!
    我改了兩個
    圈圈!
    收到!
    收到!
    收到!
    我刪了一個
    方塊!
    OK, 好! OK, 好!

    View Slide

  20. උ份
    ब૾؝༡ፍత࣌ީ။Ṷଘ༡ፍਐ౓Ұᒬ

    View Slide

  21. 㑖࢙ل㑚ٴᨽᎦ
    ग़ࣄత࣌ީ你။஌ಓੋኺॄኄ࣌ީ։࢝ब༗໰୊ɼ
    Ҏٴ஌ಓ֘ፙ୭ိഃ

    View Slide

  22. $PODVSSFOU7FSTJPOT4ZTUFN $74

    TJODF

    View Slide

  23. 4VCWFSTJPO 47/

    View Slide

  24. ໰୊ੋ

    View Slide

  25. ೗Ռᔒ༗໢࿏ɼ҃ੋ47/త࢕
    ෰ثނোత࣌ީศແ๏࢖༻

    View Slide

  26. ᔒ༗໢࿏बෆೳሜDPEFʁ
    (JU)VCᆦᎃత࣌ީେՈ౎။։؝সత說ՄҎԼ൝ྃ
    哈囉, 你好!

    View Slide

  27. (JU

    View Slide

  28. -JOVT5PSWBMET
    GPSNBOBHJOH-JOVYLFSOFM
    TPVSDFDPEFJO
    photo by Krd

    View Slide

  29. Ұఆཁ༻ऴ୺ػࢦྩ嗎

    View Slide

  30. View Slide

  31. ෼ࢧ
    #SBODI

    View Slide

  32. ሣ෼ࢧతޡղ

    你૝૾தత෼ࢧ௕ॄኄᒬࢠ

    View Slide

  33. photo by Mark Fischer

    View Slide

  34. photo by Caroline

    View Slide

  35. ෼ࢧ୞ੋҰு
    షࡏ๭ݸ$PNNJU্తషࢴ

    View Slide

  36. ෼ࢧ኷ศٓత
    ҝॄኄ

    View Slide

  37. ॄኄ࣌ީཁ࢖༻෼ࢧ

    View Slide

  38. ৽⃧෼ࢧDBU
    $ git branch cat
    ᒾࢹ෼ࢧ
    $ git branch
    cat
    * master
    $ git branch -d cat
    Deleted branch cat (was cb96971).
    ႟আ෼ࢧDBU

    View Slide

  39. ੾׵౸DBU෼ࢧ
    $ git checkout cat
    ੾׵౸EPH෼ࢧɼ೗Ռ֘෼ࢧෆଘࡏɼ
    ။ࣗಈݐཱ৽త෼ࢧ
    $ git checkout -b dog

    View Slide

  40. ߹ซ෼ࢧ

    View Slide

  41. ଖመ෼ࢧੋᔒ辦๏߹ซత
    你߹ซతੋ෼ࢧॴࢦ౸త$PNNJU

    View Slide

  42. ߹ซ෼ࢧDBU
    $ git checkout master
    $ git merge cat

    View Slide

  43. ߹ซաత෼ࢧՄҎ႟ᎃ嗎
    ໰୊

    View Slide

  44. ཁዎኄऔফ߶߶Ṝ࣍త߹ซ
    㐫گ

    View Slide

  45. զ؃༗ࠣਓత෼ࢧ౎༗؃ىိ૾
    ෼ࢧతʮখࣖ朵ʯઢᅷ໹ɼዎኄ
    զత෼ࢧ౎ᔒ༗
    就是這種東西
    㐫گ

    View Slide

  46. Ҽҝෆधཁ啊ʂ

    View Slide

  47. $ git merge cat --no-ff
    ඇշ᫚߹ซ 'BTI'PSXBSE

    View Slide

  48. ᚙੜিಥ $POqJDU
    ྃɼዎኄ辦
    㐫گ

    View Slide

  49. ࢖༻3FCBTF߹ซ

    View Slide

  50. photo by UGA College of Ag & Environmental Sciences

    View Slide

  51. e076c8
    35c42e
    b43d89
    f17acb
    76ccce
    981ad3 dog
    cat
    master
    HEAD
    $
    3FCBTF߹ซ

    View Slide

  52. 35c42e
    76ccce
    981ad3 dog
    master
    b43d89
    f17acb
    cat
    HEAD
    $ git rebase dog
    3FCBTF߹ซ

    View Slide

  53. f17acb
    b43d89
    35c42e
    76ccce
    981ad3 dog
    master
    b43d89
    f17acb
    cat
    HEAD
    $ git rebase dog
    c871e3
    ab12cd cat HEAD
    3FCBTF߹ซ

    View Slide

  54. 3FCBTFෆੋႩԼష্

    View Slide

  55. ཁዎኄऔফ
    ߶߶Ṝ࣍తSFCBTF߹ซ
    㐫گ

    View Slide

  56. ଖሏৗݟ㐫گ

    View Slide

  57. ༗ࠣൺֱػີత檔Ҋզෆ૝์ࡏ
    (JUཫ໘Ұىඋ份
    㐫گ

    View Slide

  58. HJUJHOPSF
    https://github.com/github/gitignore

    View Slide

  59. 你ෆখ৺೺ாᥒີᛰሜࡏ๭ݸ檔
    Ҋཫɼఏަࣕ׌ਪग़ڈྃ
    㐫گ

    View Slide

  60. $ git filter-branch --tree-filter
    "rm -f config/password.txt"
    ਑ሣ㑌ݸઅᴍ႟আಛఆ檔Ҋ

    View Slide

  61. ਫ਼ਆෆ޷ɼෆখ৺༌ೖྃHJU
    SFTFU)&"%?IBSEࢦྩɼ檔
    Ҋؐٹಘճိ嗎
    㐫گ

    View Slide

  62. ௐ閱SFqPH
    $ git reflog
    $ git reset --hard 823520ed
    ճ౸SFTFU೭લతઅᴍ

    View Slide

  63. લҰఱᔒਭ๞ɼෆখ৺೺ؐᔒ߹
    ซత෼ࢧ႟ᎃྃɼٹಘճိ嗎
    㐫گ

    View Slide

  64. ௐ閱SFqPH
    $ git reflog
    $ git checkout -b new_branch_name
    823520ed
    ࢖༻ಹݸઅᴍ၏ग़৽తCSBODI

    View Slide

  65. ҝॄኄ༗࣌ީ။ਪෆ্ڈʁ

    View Slide

  66. ख䳾ଠຫ

    View Slide

  67. ຊိෆ૝༻
    Ṝটతʂ

    View Slide

  68. ߋଟ㐫گ୊ɼ੥ჩ閱
    IUUQTHJUCPPLUX

    View Slide

  69. ⾼高⾒見見龍 Blog
    Facebook
    Twitter
    Email
    Mobile
    https://kaochenlong.com
    https://www.facebook.com/eddiekao
    https://twitter.com/eddiekao
    [email protected]
    +886-928-617-687

    View Slide

  70. (JUখঞ

    View Slide

  71. ࢑ଘეҬ

    4UBHJOH"SFB
    ޻࡞໨㑚

    8PSLJOH%JSFDUPSZ
    Ṷଘݿ ຊ஍

    3FQPTJUPSZ
    HJUBEE
    HJUDPNNJU
    HJUQVTI
    HJUQVMM
    HJUSFTFU
    HJUSNDBDIFE
    Ṷଘݿ ԕ୺

    3FQPTJUPSZ

    View Slide

  72. 暫存區域

    Staging Area
    工作目錄

    Working Directory
    儲存庫(本地)

    Repository
    git add
    git commit
    git reset
    git rm --cached
    儲存庫(遠端)

    Repository
    git push
    git pull
    $ git config --global user.name "5xruby"
    $ git config --global user.email "[email protected]"
    設定:
    $ git init
    初始化:
    $ git add FILENAME
    把檔案加到暫存區域:
    $ git status
    查看狀態:
    $ git commit -m "add index.html"
    提交:
    $ git log
    檢視紀錄:
    $ git reset HEAD^
    取消最後一次提交:
    $ git branch 5xruby
    新增分支 "5xruby":
    $ git branch
    檢視目前分支:
    $ git branch -d 5xruby
    刪除已合併分支 "5xruby":
    $ git checkout 5xruby
    切換分支到 "5xruby" :
    $ git merge 5xruby
    合併分支 "5xruby":
    $ git remote add origin REMOTE_URL
    新增遠端節點 "origin":
    $ git remote -v
    檢視遠端節點:
    $ git remote rm origin
    刪除遠端節點 "origin":
    $ git push origin master
    把 "master" 分支內容推往 "origin" 節點:
    $ git pull origin master
    把遠端 "origin" 節點的 "master" 拉回本機並進行合併:

    View Slide