Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Git and Github basic with SourceTree

6 848 vues

Publié le

「手殘救星 - Git and GitHub」slides
* 現場共筆文件: http://goo.gl/aqTTYO

Publié dans : Technologie
  • 為了讓聽眾可以快速入門,凍仁選擇搭配有圖形化介面的 SourceTree 來輔助講解 Git 的相關操作,也因為如此選擇了 Mac OSX 上的 Keynote 來製作 slides。但也因為使用 Keynote 所製作的 slides 是無法直接上傳至 slideshare 的,故只得先輸出成影像再手動合併成 PDF,但這又會造成 slideshare 無法解析 Transcript。最後只好先輸出成 pptx,進行手動調整後匯出 PDF …
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Git and Github basic with SourceTree

  1. 1. [ chusiang@nsysucm ~ ] $ cat .profile # Author: 凍仁翔 / chusiang.lai (at) gmail.com # Blog: http://note.drx.tw # Modified: 2015-04-29 17:50 GitHub& Bacis with SourceTree
  2. 2. 關於凍仁翔 • 5 年以上的 Git 使⽤用經驗。 • 前 Foxconn 軟體⼯工程師。 • 現職 DrSays IT ⼯工程師。 • 相關作品和著作: • LifeZMD • @be_vimmer_tw • 《完全⽤用 GNU/Linux ⼯工作》 • 凍仁的筆記 2
  3. 3. 準備好⼀一探究竟嗎?開始囉! 3
  4. 4. Outline I. Git 是什麼? II. GitHub ⼜又是什麼? III. Git & GitHub 可以怎麼玩? IV. 10 招成為 Git ⼤大師。 V. GitHub 隨堂測驗。 4
  5. 5. Ⅰ. Git 是什麼? 5
  6. 6. –Wikipedia Git 是⼀一個分散式版本控制軟體,最初由林納斯. 托⽡瓦茲 (Linus Torvalds) 創作,於 2005 年以 GPL 釋出。最初是為了更有效率的管理 Linux Kernel 開 發⽽而設計的。 6
  7. 7. Git 是什麼? • SCM (Source Code Management, Software Configuration Management) • VCS (Version Control Software) • 分散式的版本控制系統 • ⾃自由軟體 (GPL License) 7 ⽏毋需 Server,可離線使⽤用 不怕被襲斷、不怕成為軟體孤兒
  8. 8. 沒有版本控管的世界 ⼤大家都經歷過的「⼿手殘」年代 8
  9. 9. 9 檔案夾 版本控制 網路芳鄰 版本控制 • FTP 版本控制 • 壓縮檔版本控制 • Google 雲端硬碟版本控制 • Dropbox 版本控制 • ...
  10. 10. 那位⺩王OX到底是在寫什麼啊! 10
  11. 11. 有 SVN 的世界 ⼤大家都經歷過的「⼿手殘」年代 #2 11
  12. 12. 沒有網路是要怎麼寫 code 啊!! 12
  13. 13. 有 Git 的世界 ⼿手殘? 爛 code? 傻傻分的清楚 13
  14. 14. 誰? 在何時?⾃自我敘述 做了什麼? 在 Git 的世界裡您可以看到 … 詳 細 資 訊 14
  15. 15. 凡⾛走過必留痕跡 15
  16. 16. –jserv 「Git 是⼀一個可以讓現在的⾃自⼰己、過去的⾃自⼰己和未來 的⾃自⼰己共同開發的版本控制系統。」 16
  17. 17. Git 10 週年,Linux 之⽗父 談他是怎麼在 10 天內開發完成 伯樂在線 - http://goo.gl/zvavk3 17
  18. 18. Ⅱ. GitHub ⼜又是什麼? 18
  19. 19. –chusiang GitHub 是⼀一個提供友善的 Git 代管、 Issue tracking ... 等的程式碼社交平台。 19
  20. 20. GitHub 官⽅方網站 https://github.com/ 20
  21. 21. Git Web 21
  22. 22. git diff 22
  23. 23. Issue Tracking 23
  24. 24. Wiki 24
  25. 25. Follwers 25
  26. 26. Ⅲ. Git 和 GitHub 可以怎麼玩? 26
  27. 27. 多⼈人協同開發 • LifeZMD 為 Charlie, Chu, Dick, Olga, Steven, chusiang 於 iDSBG 第 三屆 HTML5 Hackathon 所製作。 • ⽐比賽成績:第 4 名。 • ⽐比賽時間:2 天 1 夜。 • 團隊⼈人數:6 ⼈人。 LifeZMD - http://goo.gl/OHJK9u27
  28. 28. 靜態網站 SM 是個使⽤用 GitHub Pages 服務和的 HTML, CSS 和 Javascript 所寫成的⼤大 字報 Web Apps。 SM - http://sm.drx.tw 28
  29. 29. 送 Patch 覺得別⼈人的專案不夠完美? 那就先 fork 別⼈人的專案, 改完 code 再送 Pull Requests 唄! @be_vimmer_tw - http://goo.gl/TVYHsL 29
  30. 30. 寫書 • 藉由 GitHub 和 GitBook 服務的整 合,我們可以使⽤用 Markdown 語法撰 寫⽂文章,並整理成冊。 • GitBook 同時⽀支援 Web, PDF, ePub 和 mobi 等多種格式。 完全⽤用 GNU/Linux ⼯工作 - http://goo.gl/OHJK9u 30
  31. 31. 持續整合 (CI) 搭配強⼤大的 Jenkins CI,即可進⾏行 ⾃自動化測試 (Web UI, Unit test)、 編譯 (AOSP)、通知訊息 (Email, HipChat, Slack) ... 等整合。 Jenkins CI - https://ci.jenkins-ci.org/ 31
  32. 32. –chusiang 「有了 Git 就好⽐比寫程式可以跟玩單機遊戲⼀一樣, 可以隨時儲存和讀取進度,不管是要快速破關還是 要體驗各個分⽀支劇情都可以輕鬆的辦到。」 32
  33. 33. Ⅳ. 10 招成為 Git ⼤大師 33
  34. 34. 在 開始 之前須準備 功預善其事,必先利其器 的 Tool 34
  35. 35. SourceTree Terminalor 35
  36. 36. 還有 跑跳江湖 的 ID 和 Email 36
  37. 37. # 設定使⽤用者名稱 $ git config --global user.name "foo" # 設定電⼦子信箱 $ git config --global user.email "foo@example.tw" 37
  38. 38. 第 1 招:複製 (clone) 與初始化 (init) 想快速上⼿手?那就先從抄開始唄! 38
  39. 39. 再 clone 前, 請先 fork 為便於同步本以下操作環境,請先⾄至 GitHub 進⾏行 fork。 左鍵 39
  40. 40. 複製 (clone) 若不是從⾃自⼰己的 GitHub 進⾏行複製 (clone),預設是沒有權限上傳 (push) 的喔! 40
  41. 41. 左鍵 左鍵 41 # 複製 (clone) $ git clone git@github.com:chusiang/sandbox.git 紅字部份請改成⾃自⼰己的帳號 紅字部份請改成⾃自⼰己的帳號 紅字部份請改成⾃自⼰己的帳號
  42. 42. 初始化 (init) 在建⽴立⼀一個新的 Git 專案之前,我們需⼿手動建⽴立本地端的數據庫 (Local Repository),但 若有前⼈人 (通常會是系統管理員) 建⽴立好,或 fork 其它專案,這時我們就可以略過。 42
  43. 43. 左鍵 左鍵 # 建⽴立專案⺫⽬目錄並切換⾄至該⺫⽬目錄底下 $ mkdir /Users/jonny/vcs/demo; cd $_ # 建⽴立本地數據庫 (local repository) $ git init 43
  44. 44. 第 2 招:新增 (add)、移動 (mv)、刪除 (rm) 可想成是 CRUD 裡的 Create, Upgrade, Delete。 44
  45. 45. 右鍵 # 新增 (Add)、刪除 (Remove) $ git { add | rm } README.md # 移動 (Move) $ git mv README.md foo.md
  46. 46. 第 3 招:提交 (commit) 在 Git 的每⼀一動裡,都是⽤用 commit 來記錄的。 46
  47. 47. # 提交 (Commit) $ git commit README.md git commit 左鍵 輸⼊入⽂文字 47
  48. 48. Upgrade to Lv148
  49. 49. 第 4 招:查看狀態 (status) 與歷史記錄 (log) 在 Git 的世界迷路時,⽤用 status 和 log 就對了。 49
  50. 50. 查看狀態 (status) 現在做到哪⼀一動了? 看 status 就知道了! 50
  51. 51. # 版本狀態 (Status) $ git status git status 51
  52. 52. 查看歷史記錄 (log) 在 Console 裡凍仁習慣⽤用 git lg 的別名 (alias) 來看版本樹。 52
  53. 53. # 觀看版本記錄 $ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' git log 53
  54. 54. 第 5 招:查看記錄 (checkout) 講完了儲存進度,接下來就是讀取 (Read) 進度。 54
  55. 55. # 查看某進度時的記錄 $ git checkout 09a3d66 左鍵 左鍵 左鍵 55
  56. 56. 第 6 招:⽐比對版本差異 (diff) 剛剛改了什麼 code? 有 diff 即可⼀一⺫⽬目瞭然。 56
  57. 57. # ⽐比對 (Different) 當前版本差異 $ git diff HEAD 57
  58. 58. Upgrade to Lv258
  59. 59. 第 7 招:推送 (push) 上傳⾄至遠端 (remote) 的數據庫 (Repository)。 59
  60. 60. # 推送 (Push) $ git push origin master 左鍵 左鍵 60
  61. 61. 第 8 招:拉取 (pull) 從遠端 (remote) 數據庫 (Repository) 下載。 61
  62. 62. # 拉取 (Pull) $ git pull origin master 左鍵 左鍵 62
  63. 63. 第 9 招:捨棄修改 (checkout) 程式寫爛了? 那就重頭來過吧! 63
  64. 64. # 藉由 checkout 捨棄修改 $ git checkout README.md 左鍵 左鍵 64
  65. 65. 65 Upgrade to Lv3
  66. 66. 第⼗十招:分⽀支 (branch) 與合併 (merge) 學會 branch 和 merge 即可說是習得⼤大成功⼒力了! 66
  67. 67. 版本樹 在開始前先看⼀一下結果。 master dev 67
  68. 68. 分⽀支 (branch) 同⼀一款遊戲,總有不同的分⽀支劇情。 68
  69. 69. # 建⽴立分⽀支 $ git branch dev $ git checkout -b dev 左鍵 master 69 左鍵
  70. 70. # 列出分⽀支 $ git branch master 70
  71. 71. # 藉由 checkout 切換⾄至 dev 分⽀支 $ git checkout dev 左鍵 x2 dev master 71
  72. 72. # 於 dev 分⽀支新增檔案,並提交 $ git add branch_demo.txt $ git commit -m 'Demo for branch'dev 72
  73. 73. Branch? 舉⼿手可得 開了新的 branch 後還要在新的 branch 裡 commit 過才看得到分⽀支樹。 dev master Uncommitted changes 73
  74. 74. 合併 (merge) 劇情分⽀支久了,總有回到主線的⼀一天。 74
  75. 75. 左鍵 x2 # 藉由 checkout 切換⾄至 master 分⽀支 $ git checkout master dev master 75
  76. 76. # 於 master 合併 dev 分⽀支 $ git merge --no-ff dev master 76
  77. 77. 合併完成! master 77
  78. 78. 您已習得上乘⼼心法 Congratulation ! 78
  79. 79. 您已習得上乘⼼心法 Congratulation ! 79
  80. 80. Ⅴ. GitHub 隨堂測驗 80
  81. 81. 基本操作 (Basic) 1. 登⼊入 Github。 - https://github.com/ 2. 對 Lab 的 Repository 進⾏行 fork。 - https://github.com/chusiang/sandbox/ 3. 下載程式碼。 $ git clone https://github.com/YourName/sandbox.git 4. 新增檔案並提交。 $ git { add | status | commit } 5. 上傳程式碼。 $ git push 81 Login GitHub fork Repository git clone git add git commit git status git push Finish? Yes No
  82. 82. 進階操作 (Advanced) 1. 於其它路徑再次下載程式碼。 $ git clone https://github.com/YourName/sandbox.git 2. 新增、修改、刪除檔案並提交多次。 $ git { add | mv | rm | status | commit } 3. 新增分⽀支並提交多次。 4. 切換⾄至各個紀錄點和分⽀支。 $ git checkout OXOXOXX 5. 合併分⽀支。 6. 上傳程式碼。 $ git push origin master 82 dev master Finish
  83. 83. ⼯工商服務 83
  84. 84. 2015 2015.10.? - http://mopcon.org 84
  85. 85. 官⽅方網站 http://mopcon.org 粉絲群 http://fb.me/mopcon 85
  86. 86. 86
  87. 87. http://coscup.org 87
  88. 88. Q & A 嚴禁拍打 餵⻝⾷食 請參考現場共筆⽂文件 - http://goo.gl/aqTTYO 88
  89. 89. Reference • 現場共筆⽂文件 - http://goo.gl/aqTTYO • 現場直播網址 - https://youtu.be/5ftNjrpzVqM • 連猴⼦子都能懂的 Git ⼊入⾨門指南 | ⾙貝格樂 (Backlog) - http://backlogtool.com/git-guide/tw/ • 寫給⼤大家的 Git 教學 | slideshare - http://www.slideshare.net/littlebtc/git-5528339 • Git 實務圖解 | slideshare - http://www.slideshare.net/pokaichang72/git-42427674 • Git 官⽅方⽂文件 - http://git-scm.com/book/zh-tw/v1 • 圖⽚片來源: • 國家地理雜誌 - http://www.ngtaiwan.com • 10 Years of Git | Atlassian Git Tutorial - https://www.atlassian.com/git/articles/10-years-of-git/ 89
  90. 90. E N D 90

×