Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Git由超淺入超深

4,707 views

Published on

Git由超淺入超深

Published in: Technology
  • Be the first to comment

Git由超淺入超深

  1. 1. 跟著⽺羊⼩小咩⼀一起爽
  2. 2. Blog : lamb-mei.com ⽺羊⼩小咩 Lamb Mei E-mail : lamb@lamb-mei.com FB : https://www.facebook.com/lamb.mei GitHub:https://github.com/lamb-mei/
  3. 3. 爽 咩 世人的誤解
  4. 4. 我是 圖⽚片來源 http://www.dep.taipei.gov.tw/site/tcg/public/MMO/dep_MMO/0129.jpg
  5. 5. 今天的主題 圖⽚片來源 http://newsget-cache.stor.sinaapp.com/19e004423dfc63cc62576f113e68af04.jpg
  6. 6. 圖⽚片來源:http://img04.tooopen.com/images/20121024/tooopen_201210241527566827.jpg http://s1.t.itc.cn/mblog/pic/20125_18_9/f_28548972594774707.gif
  7. 7. 為什麼要使⽤用 GIT
  8. 8. 為什麼要使⽤用 Git 分散式 速度快 ⼤大神都在⽤用 ⼤大家都在⽤用 不⽤用很落伍 公司強迫我要⽤用 開分⽀支(branch)很容易 ⼤大部份操作本地端可完成 不需中央伺服器版本庫毀損的⾵風險較低 超潮der
  9. 9. 對沒⽤用過的⼈人來說 圖⽚片來源 http://s279.photobucket.com/user/sherlock1031/media/Dectective%20Dissicusion%20Group/Galileo106.jpg.html
  10. 10. 對沒⽤用過的⼈人來說 圖⽚片來源 http://s279.photobucket.com/user/sherlock1031/media/Dectective%20Dissicusion%20Group/Galileo106.jpg.html 對只會 commit / push / pull 的⼈人也是
  11. 11. / 20512 使⽤用 GIT 要解決的事情
  12. 12. / 20513 使⽤用 GIT 要解決的事情
  13. 13. / 20514 使⽤用 GIT 要解決的事情 檔案可能還好處理 但若分別 是資料夾呢?
  14. 14. / 20515 使⽤用 GIT 要解決的事情 圖⽚片來源 http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_1_2.png
  15. 15. / 20516 使⽤用 GIT 要解決的事情 其實還有很多... 圖⽚片來源 http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_1_2.png
  16. 16. / 20517 圖⽚片來源 https://lh4.googleusercontent.com/-vvzM1j0tqGA/UPffE081MHI/AAAAAAAAQ5c/C6oSHikiCdY/s990/P1130764.jpg 最後只要知道 GIT 是
  17. 17. / 20518 GIT Software
  18. 18. / 205 Windows 必裝軟體 19 http://msysgit.github.io/ msysgit http://git-scm.com/downloads/win git-scm
  19. 19. / 205 Mac 必裝軟體 20 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev git-scm ⼿手動安裝
  20. 20. / 20521 若你是Coding 魔⼈人 千萬不能裝 GUI 軟體 圖⽚片來源 http://screen-wallpapers.com/wallpapers/4743/bigpreview_Coding.jpg
  21. 21. / 20522 圖⽚片來源 http://screen-wallpapers.com/wallpapers/4743/bigpreview_Coding.jpg ⼀一定要⽤用 terminal 不然不夠帥
  22. 22. / 20523 圖⽚片來源 http://ext.pimg.tw/yayachen0326/4ab33c5f3fe73.jpg 若你是...
  23. 23. / 205 Git GUI 軟體 24 windows only https://code.google.com/p/tortoisegit/
  24. 24. / 205 Git GUI 軟體 25 windows / OS X http://www.sourcetreeapp.com/
  25. 25. / 20526 GIT 這個玩意
  26. 26. / 20527 基本觀念⾮非常重要!
 
 協同作業 必須⼤大家都要有相同的觀念
  27. 27. / 20528 腦部神經聯結⽰示意圖 協同作業,必須⼤大家都要有相同的觀念 圖⽚片來源 http://www.naipo.com/Portals/1/web_tw/images/pic089-01-a01.jpg
  28. 28. 儲存庫 ( Repository )
  29. 29. / 20530 圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_2_1.png 儲存庫哪來的 • 本地的儲存庫 (local repository)
  30. 30. / 20531 圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_2_2.png 儲存庫哪來的 • 遠端的儲存庫 (remote repository) GitHub 或其他平台建⽴立的 repo
  31. 31. 儲存庫 ( Repository ) git init git init --bare git clone <REPOSITORY_URI>
  32. 32. / 20533 git init --bare Server ⽤用儲存庫資料夾 命名規則 <資料夾名稱>.git https://github.com/github/gitignore.git 儲存庫 ( Repository )
  33. 33. Git 常⽤用指令
  34. 34. / 20535 Git 常⽤用指令 git add 新增檔案 git add . git add <file path> git add *.js git add docs/*
  35. 35. / 20536 Git 常⽤用指令 git status 查詢狀態 git status -s git status -b
  36. 36. / 20537 Git 常⽤用指令 git commit 提交變更 / 建⽴立版本 git commit -m ‘訊息⽂文字‘
  37. 37. / 20538 Git 常⽤用指令 git log 查詢版本 git log -2
  38. 38. / 20539 Git 常⽤用指令 對很多⼈人來說從這開始 就不是常⽤用指令了
  39. 39. / 20540 Git 常⽤用指令 git rm 刪除檔案 git rm 1.txt 1. 刪除版本庫索引的 ‘1.txt' 這個檔案 2. 刪除⼯工作⺫⽬目錄下的 '1.txt' 這個實體檔案
  40. 40. / 20541 Git 常⽤用指令 git mv 更換檔案 git mv 1.txt A.txt
  41. 41. / 20542 Git 常⽤用指令 git reset 重設⼯工作⺫⽬目錄/索引狀態 git reset --hard 只有重設索引 還原索引跟⼯工作⺫⽬目錄 注意 reset 是針對全部⼯工作區 (這只是為了好記,有別種reset ⽤用法)
  42. 42. / 20543 Git 常⽤用指令 git checkout master -- 1.txt 取出指定的 <物件> git checkout master 1.txt e.g 還原其中⼀一個被改壞的檔案 git checkout
  43. 43. 儲存庫 ? ⼯工作⺫⽬目錄?索引? ⼯工作⺫⽬目錄
  44. 44. / 20545 儲存庫
 (repo) 儲存庫 ? ⼯工作⺫⽬目錄?索引?
  45. 45. / 20546 索引 儲存庫 ? ⼯工作⺫⽬目錄?索引?
  46. 46. / 20547 圖⽚片來源:http://backlogtool.com/git-guide/tw/img/post/intro/capture_intro1_4_1.png 儲存庫 ? ⼯工作⺫⽬目錄?索引?
  47. 47. Git 原理/結構 圖⽚片來源 :http://himg2.huanqiu.com/saronscms/uploadfile/2014/0403/20140403050245784.jpg 跟⼤大藍洞⼀一樣深 XD Git 原理/結構
  48. 48. / 20549 Git 物件類型 blob 物件 tree 物件 commit 物件 tag 物件 所有的物件都會以 zlib 演算法進⾏行壓縮
  49. 49. / 20550 Git 物件類型 blob 物件 某個檔案的 "內容",且只有內容⽽而已,當你執⾏行 git add 指令的同時,這些新增檔案的內容就會 ⽴立刻被寫⼊入成為 blob 物件,檔名則是物件內容 的雜湊運算結果,沒有任何其他其他資訊,像是 檔案時間、原本的檔名或檔案的其他資訊,都會 儲存在其他類型的物件裡 (也就是 tree 物件)
  50. 50. / 20551 Git 物件類型 tree 物件 儲存特定⺫⽬目錄下的所有資訊,包含該⺫⽬目錄下的檔 名、對應的 blob 物件名稱、檔案連結(symbolic link) 或其他 tree 物件等等。由於 tree 物件可以 包含其他 tree 物件,所以tree 物件其實就跟「資 料夾」沒兩樣。簡單來說,tree 物件這就是在特 定版本下某個資料夾的快照(Snapshot)
  51. 51. / 20552 Git 物件類型 commit 物件 ⽤用來記錄有那些 tree 物件包含在版本中,⼀一個 commit 物件代表著 Git 的⼀一次提交,記錄著特 定提交版本有哪些 tree 物件、以及版本提交的 時間、紀錄訊息等等,通常還會記錄上⼀一層的 commit 物件名稱 (只有第⼀一次 commit 的版本沒 有上層 commit 物件名稱
  52. 52. / 20553 Git 物件關聯 圖⽚片來源 :http://journal.code4lib.org/media/issue21/anderson/images/large/fig-09-git-revisions.png
  53. 53. / 20554 Git 物件命名規則 每⼀一個「物件」,都是以「檔案內容」進⾏行 SHA1 雜湊運算 出⼀一個 hash 值,並⽤用這個 hash 值當作物件的名稱 (檔名)。 Git 會先拿前兩個字元(97)當作⺫⽬目錄 然後把剩下的 hash 值當成檔名 (3749075c53236cfc411f62918efc3ce3a31380) 這些物件的實體⺫⽬目錄與檔案也都會放在 .gitobjects ⺫⽬目錄下
  54. 54. / 20555 查詢 Hash 編碼 git hash-object $git hash-object 1.txt d00491fd7e5bb6fa28c517a0bb32b8b506539d4d
  55. 55. / 20556 查詢 Git 物件 git cat-file -p
  56. 56. / 20557 查詢 Git 物件 git cat-file -p
  57. 57. / 20558 查詢 Git 物件 git cat-file -p
  58. 58. / 20559 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0301-tn.png
  59. 59. / 20560 Git 物件關聯 圖⽚片來源 : http://git-scm.com/figures/18333fig0302-tn.png
  60. 60. / 20561 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0303-tn.png
  61. 61. / 20562 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0304-tn.png
  62. 62. / 20563 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0305-tn.png HEAD 是⼀一直保持著最新版本的指標
  63. 63. / 20564 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0306-tn.png 切換到 Testing 分⽀支的狀態
  64. 64. / 20565 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0307-tn.png
  65. 65. / 20566 Git 物件關聯 圖⽚片來源 :http://git-scm.com/figures/18333fig0309-tn.png
  66. 66. 圖⽚片來源 http://ecx.images-amazon.com/images/I/51oxTnCqCbL._SY300_.jpg http://backlogtool.com/git-guide/tw/img/post/stepup/capture_stepup1_1_1.png 分⽀支 (branch)
  67. 67. / 20568 分⽀支 (branch) git branch <branch name> 建⽴立分⽀支
  68. 68. / 20569 分⽀支 (branch) git checkout <branch name> 切換分⽀支
  69. 69. / 20570 Git 差異⽐比對 git diff git diff         => ⼯工作⺫⽬目錄 vs 索引 git diff HEAD      => ⼯工作⺫⽬目錄 vs HEAD git diff --cached HEAD => 索引 vs HEAD git diff HEAD^ HEAD  => HEAD^ vs HEAD
  70. 70. / 20571 Git 物件的參照名稱 參照名稱 (ref) 簡單來說就是 Git 物件的⼀一個「指標」 是相對於「絕對名稱」的另⼀一個「好記名稱」 ⽤用⼀一個預先定義或⾃自⾏行定義的名稱來代表某⼀一個 Git 物件。 HEAD (代表最新版本) 分⽀支
 標籤名稱 這些都是「參照名稱」
  71. 71. / 20572 在⼤大多數的情況下,「參照名稱」通常都 會指向⼀一個 commit 物件,但並⾮非必要, 你也可以指向其他 Git 物件類型,像是 blob 物件、tree 物件、tag 物件等等 Git 物件的參照名稱
  72. 72. / 20573 .git/refs/ ⺫⽬目錄 • 本地分⽀支: .git/refs/heads/ • 遠端分⽀支: .git/refs/remotes/ • 標  籤: .git/refs/tags/
  73. 73. / 20574 * HEAD 永遠會指向「⼯工作⺫⽬目錄」中所設定的「分⽀支」當中的「最新版」。 * ORIG_HEAD 就是 HEAD 這個 commit 物件的「前⼀一版」,經常⽤用來復原上⼀一次的版本變更。 * FETCH_HEAD 使⽤用遠端儲存庫時,可能會使⽤用 git fetch 指令取回所有遠端儲存庫的物件。這個 FETCH_HEAD 符號參考則會記錄遠端儲存庫中每個分⽀支的 HEAD (最新版) 的「絕對名 稱」。 * MERGE_HEAD 當你執⾏行合併⼯工作時 (關於合併的議題會在⽇日後的⽂文章中會提到),「合併來源」的 commit 物件絕對名稱會被記錄在 MERGE_HEAD 這個符號參照中。 符號參照名稱 (symref) 符號參照名稱 (symref) 其實也是參照名稱 (ref) 的⼀一種,只是內容不同 ⽽而已。我們從下圖應可看出其內容的差異,「符號參照」會指向另⼀一 個「參照名稱」 並且內容以 ref: 開頭
  74. 74. / 20575 Git 參照名稱⼜又有區分「⼀一般參照」與「符號參照」,兩者的⽤用 途⼀一模⼀一樣,只在於內容不太⼀一樣。 「符號參照」會指向另⼀一個「⼀一般參照」 「⼀一般參照」則是指向⼀一個 Git 物件的「絕對名稱」。 「參照名稱(ref)」 簡單來說就是 Git 物件的⼀一個「指標」,⽤用來 指向特定 Git 物件,所以你可以把「參照名稱」想像成 Git 物件 絕對名稱的別名 (Alias),⽤用來幫助記憶。在 Git 裡,有許多機制 可以幫你控管專案,例如「分⽀支」、「標籤」等等,這些機制⾻骨 ⼦子裡其實就是靠「參照」完成的。 參照⼩小節
  75. 75. 圖⽚片來源 : http://i.imgur.com/LRC1M.jpg http://blog-imgs-43-origin.fc2.com/m/o/l/mollymolly1/100331-5ds.jpg http://static.ettoday.net/images/576/d576654.jpg http://link.photo.pchome.com.tw/s13/js86/4/132991104143/
 http://pic.pimg.tw/sandykill/4aab6e5adf5d7.gif
  76. 76. 圖⽚片來源 :http://www.fangdigital.com/wp-content/uploads/2013/04/tags.jpg Git 標籤 (tag) • 輕量標籤 (lightweight tag) • 標⽰示標籤 (annotated tag)
  77. 77. / 20578 Git 標籤 (tag) • 輕量標籤 (lightweight tag) • 標⽰示標籤 (annotated tag) 這種「標籤」才是 Git 儲存庫中「永久的物件」
  78. 78. / 20579 Git 暫存(stash) • git stash 會將所有已列⼊入追蹤(tracked)的檔案建⽴立暫存版 • git stash -u 會包括所有已追蹤或未追蹤的檔案,全部都建⽴立 成暫存版
  79. 79. 圖⽚片來源:http://bbs.mychat.to/attach/Fid_175/175_837026.jpg 追蹤變更軌跡 git reflog
  80. 80. / 20581 追蹤變更軌跡 (儲存位置) .git/logs/
  81. 81. / 20582 追蹤變更軌跡 (查詢後復原) git reflog HEAD@{0},永遠代表⺫⽬目前分⽀支的「最新版」
  82. 82. / 20583 git reset HEAD@{1} --hard 追蹤變更軌跡 (查詢後復原) git reflog 「取消」最近⼀一次的版本紀錄 HEAD@{0},永遠代表⺫⽬目前分⽀支的「最新版」
  83. 83. / 20584 追蹤變更軌跡(記錄時機) * commit * checkout * pull * push * merge * reset * clone * branch * rebase * stash
  84. 84. Git 忽略清單 .gitignore
  85. 85. / 20586 Git 忽略清單 .gitignore
  86. 86. Git 合併觀念 git merge
  87. 87. / 20588 Git 合併觀念 (merge)
  88. 88. / 20589 Git 合併觀念 (merge) fast-forward(快轉)合併
  89. 89. / 20590 Git 合併觀念 (merge)
  90. 90. / 20591 Git 合併觀念 (merge) 合併會多⼀一個 commit
  91. 91. / 20592 圖⽚片來源 :http://git-scm.com/figures/18333fig0310-tn.png Git 合併 (merge)
  92. 92. / 20593 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0311-tn.png
  93. 93. / 20594 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0311-tn.png
  94. 94. / 20595 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0313-tn.png
  95. 95. / 20596 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0314-tn.png
  96. 96. / 20597 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0315-tn.png
  97. 97. / 20598 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0316-tn.png
  98. 98. / 20599 Git 合併 (merge) 圖⽚片來源 :http://git-scm.com/figures/18333fig0316-tn.png
  99. 99. / 205100 Git 合併觀念 (merge) 1. 合併之前,先看清楚⾃自⼰己在哪個分⽀支 2. 合併之前,請確保⼯工作⺫⽬目錄是乾淨的 3. 合併時請⽤用 git merge [另⼀一個分⽀支] 來將另⼀一個分 ⽀支的變更合併回來 4. 合併成功後,確認沒有問題!
  100. 100. / 205101 Git 合併衝突 (merge)
  101. 101. / 205102 Git 合併衝突 (merge) ⽤用壞了怎麼辦
  102. 102. / 205103 Git 合併衝突 (merge) ⽤用壞了怎麼辦 git reset HEAD@{1} --hard 還原就好了
  103. 103. / 205104 Git 合併衝突 (merge) ⽤用壞了怎麼辦 git reset --hard ORIG_HEAD 這樣也可以!
  104. 104. Git 合併 git rebase
  105. 105. / 205106 Git 合併 git rebase
  106. 106. / 205107 Git 合併 git rebase
  107. 107. / 205108 Git 合併 從 bugfix “rebase” 到 master
  108. 108. / 205109 Git 合併 rebase 圖⽚片來源 :http://git-scm.com/figures/18333fig0331-tn.png
  109. 109. 所以在 client 分⽀支下命令 git rebase master (會變成下圖
  110. 110. 若在 master git rebase client (會變成下圖
  111. 111. 這張圖是
  112. 112. git rebase --onto master server client
  113. 113. git rebase --onto master server client “取出 client 分⽀支,找出 client 分⽀支和 server 分⽀支的共同祖先之後的變化, 然後把它們在 master 上重演⼀一遍”。 (譯注:雖然 client 裡的 C8, C9 在 C3 之後,但這僅表明時間上的先後, ⽽而⾮非在 C3 修改的基礎上進⼀一步改動,因為 server 和 client 這兩個分⽀支對 應的代碼應該是兩套檔,雖然這麼說不是很嚴格,但應理解為在 C3 時間 點之後,對另外的檔所做的 C8,C9 修改,放到主幹重演。)
  114. 114. git rebase --onto master server client 這需要⽤用 command 才弄得出來,所以做個了解就好 
 我也很少⽤用 onto 這個命令
  115. 115. / 205116 Git 合併 rebase 圖⽚片來源 :http://git-scm.com/figures/18333fig0333-tn.png
  116. 116. / 205117 Git 合併 rebase 圖⽚片來源 :http://git-scm.com/figures/18333fig0334-tn.png
  117. 117. / 205118 現在你想法⼀一定是
  118. 118. / 205119 圖⽚片來源 :http://mypaper.pchome.com.tw/show/article/kkk670670/A1276118288
  119. 119. Git 修改 commit
  120. 120. / 205121 ⼈人⾮非聖賢,孰能無過
  121. 121. / 205122 Git 修改 commit git commit --amend
  122. 122. / 205123 Git 修改 commit (amend) 漏掉應該要⼀一起commit 檔案
  123. 123. / 205124 糟糕我寫錯mesage Git 修改 commit (amend)
  124. 124. / 205125 Git 重置 commit git reset
  125. 125. / 205126 Git 重置 commit git reset --hard "HEAD^" 刪除最後的版本
  126. 126. / 205127 Git 重置 commit git reset --hard ORIG_HEAD 復原上次的動作
  127. 127. / 205128 Git 重置 commit git reset --soft "HEAD^" 刪除最後的版本,但留下修改內容
  128. 128. / 205129 Git 重置 commit git reset --soft "HEAD^" git reset --mixed "HEAD^" git reset "HEAD^"
  129. 129. / 205130 Git 重置 commit git reset --soft "HEAD^" git reset --mixed "HEAD^" git reset "HEAD^" 檔案會是 stage狀態
  130. 130. / 205131 Git 重置 commit git reset --soft "HEAD^" git reset --mixed "HEAD^" git reset "HEAD^" 檔案會是 unstage狀態
  131. 131. / 205132 Git 還原 commit git revert [commit_id]
  132. 132. / 205133 Git 還原 commit git revert [commit_id] 注意:索引必須乾淨狀態
  133. 133. / 205134 Git 修改 commit git cherry-pick 圖⽚片來源 : https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTSkS0N71OS1U4LRv9xx79ek2-rHXowkqWKvDt65_h-oWsP4chNzg
  134. 134. / 205135 Git 修改 commit git cherry-pick 圖⽚片來源 : https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTSkS0N71OS1U4LRv9xx79ek2-rHXowkqWKvDt65_h-oWsP4chNzg
  135. 135. / 205136 Git 修改 commit git cherry-pick
  136. 136. / 205137 Git 修改 commit git rebase -i 乾坤⼤大挪移 圖⽚片來源 :http://www.wzrlmy.com/A//upload/product//NewWebPic/BigPic/201005281209289062.jpg
  137. 137. / 205138 Git 修改 commit git rebase -i 乾坤⼤大挪移 注意:索引必須乾淨狀態
  138. 138. / 205139 Git 修改 commit (rebase) 你可以...
  139. 139. / 205140 Git 修改 commit (rebase) 1. 調換 commit 的順序
  140. 140. / 205141 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息
  141. 141. / 205142 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit
  142. 142. / 205143 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit
  143. 143. / 205144 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit
  144. 144. / 205145 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄
  145. 145. / 205146 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄 7. 壓縮⼀一個 commit,但丟棄版本紀錄
  146. 146. / 205147 Git 修改 commit (rebase) 1. 調換 commit 的順序 2. 修改 commit 的訊息 3. 插⼊入⼀一個 commit 4. 編輯⼀一個 commit 5. 拆解⼀一個 commit 6. 壓縮⼀一個 commit,且保留訊息紀錄 7. 壓縮⼀一個 commit,但丟棄版本紀錄 8. 刪除⼀一個 commit
  147. 147. Git 遠端版本庫
  148. 148. / 205149 Git 遠端版本庫 傳輸⽅方式 http:// https:// git:// ssh://
  149. 149. / 205150 Git 遠端版本庫 git push
  150. 150. / 205151 Git 遠端版本庫 git pull git fetch
  151. 151. / 205152 Git 遠端版本庫 git pull git fetch fetch merge +
  152. 152. / 205153 來⾃自github的Scott Chacon
 OSDC Git Session
 來源 http://contribgit.herokuapp.com/#1
  153. 153. / 205154
  154. 154. / 205155
  155. 155. / 205156
  156. 156. / 205157
  157. 157. / 205158
  158. 158. / 205159
  159. 159. / 205160
  160. 160. / 205161
  161. 161. / 205162
  162. 162. / 205163
  163. 163. / 205164
  164. 164. / 205165
  165. 165. / 205166
  166. 166. / 205167
  167. 167. / 205168
  168. 168. / 205169
  169. 169. / 205170
  170. 170. / 205171
  171. 171. / 205172
  172. 172. / 205173
  173. 173. / 205174
  174. 174. / 205175
  175. 175. / 205176
  176. 176. / 205177
  177. 177. / 205178
  178. 178. / 205179
  179. 179. / 205180
  180. 180. / 205181
  181. 181. / 205182
  182. 182. / 205183
  183. 183. / 205184
  184. 184. / 205185
  185. 185. Git 遠端觀念
  186. 186. / 205187 push 了就回不去了 圖⽚片來源:http://cdn0.t17.techbang.com.tw/system/attached_images/2012/12/76729/show/feba4c111f349866c5e087de04526d98.jpg?1355366400 Git 遠端觀念
  187. 187. / 205188 push 後的commit 不能... Git 遠端觀念
  188. 188. / 205189 push 後的commit 不能... Git 遠端觀念 reset rebase ament …
  189. 189. / 205190 push 後的commit 只能... Git 遠端觀念 revert
  190. 190. / 205191 Git 掛勾 (Hook)
  191. 191. Git flow
  192. 192. / 205193 Git flow
  193. 193. / 205194 Git flow git flow feature start feature_xxxxx (以此類推 git flow release 和 git flow hotfix) git flow feature finish feature_xxxxx
  194. 194. 其他的....
  195. 195. / 205196 Blame subtree submodules bisect
  196. 196. / 205197 下次有空再說.... 圖⽚片來源 :http://pic.pimg.tw/austinleefuture/1407855278-2999893000.jpg
  197. 197. 最後
  198. 198. 最後 最後
  199. 199. 最後 最後 最後
  200. 200. 很重要,所以說三次
  201. 201. 學然後知不⾜足,教然後知困,教學相⻑⾧長 圖⽚片來源 :http://www.worldofmastermind.com/wp-content/uploads/2013/10/Confucious-2a.jpg
  202. 202. / 205203 學然後知不⾜足,教然後知困。 知不⾜足,然後能⾃自反也
 知困,然後⾃自強也 故⽈曰,教學相⻑⾧長也 • “⾃自反”,意思是反過來要求⾃自⼰己。 • “困”,不通,理解不清。 • “⾃自強”,意思是⾃自⼰己努⼒力。“強”,竭⼒力,盡⼒力。 • “教學相⻑⾧長”,意思是教和學互相促進,教別⼈人,也能增⻑⾧長⾃自⼰己的學問 學習才能知道⾃自⼰己知識的缺乏 教了別⼈人之後才能知道⾃自⼰己對知識還理解不清。 認識到了⾃自⼰己知識的不⾜足,然後才能反過來要求⾃自⼰己;知道了⾃自⼰己對有些 知識還理解不通,然後才能⾃自⼰己努⼒力。
  203. 203. 參考⽂文獻 • The Will Will Web 保哥 Git 教學 • iHower Git 版本控制系統 • 猴⼦子都能懂的 Git 指南 • Git官⽅方教學 • Casear Chu Git 教學 • Scott Chacon Git Session on OSDC
  204. 204. Q & A 羊小咩 2015 / 01 / 29 Thank  you  !

×