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 簡介(古時候的簡報備份)

617 views

Published on

古時候的簡報備份

Published in: Software
  • Be the first to comment

  • Be the first to like this

Git 簡介(古時候的簡報備份)

  1. 1. Git 簡介 資工4A 952847 鄭新霖 lancetw@gmail.com 2010.01.15
  2. 2. 甚麼是 Git? Git --- The stupid content tracker http://git-scm.com/ 分散式 SCM 自由軟體 (Freeware) 開放原始碼 (Open Source) 速度很快 簡單易用的分支 (Branch) 系統 由 Linux 之父 Linus Torvalds 主導開發
  3. 3. Linus recommends Windows7 http://www.flickr.com/photos/christaleye/4033726325/
  4. 4. 緣起 2002年,Linus Torvalds 採用封閉式 的 BitKeeper (bk) 分散式版本控制系 統,降低日趨複雜的開發管理難度 自由軟體之父 Richard Stallman 為 此提出警告,Linux 重要的核心開發 者相繼拒用 bk “Freedom is more important than convenience.” -- Richard Stallman 2005年,Linus Torvalds 開始著手建 立新的分散式 SCM -- git
  5. 5. Linux kernel 平均以每小時 85.6 行的速度增加 http://mirror.celinuxforum.org/gitstat/index.php
  6. 6. Linus Torvalds on git http://www.youtube.com/watch?v=4XpnKHJA ok8 Linus 在 Google Tech Talk 的演講
  7. 7. Staging Area
  8. 8. Git 的分支 (Branch) “Branches are cheap and easy, so this is a good way to try something out.”
  9. 9. 適用任何工作流程 (workflow) Subversion 式的工作流程 整合管理員工作流程 司令官與副手的工作流程 …
  10. 10. Subversion 式的工作流程
  11. 11. 整合管理員工作流程
  12. 12. 司令官與副手的工作流程
  13. 13. GitHub http://github.com/ 使用者導向/社交導向的 repository hosting
  14. 14. 設定個人資訊 $ git config --global user.name “Hsin-lin Cheng” $ git config --global user.email “lancetw@gmail.com”
  15. 15. 建立 Repository 在本機端建立 $ cd hello-world $ git init 或是由遠端 repository 複製 $ git clone git://github.com/git/hello-world.git 為遠端的 repo 建立識別,如 hw2 $ git remote add hw2 git://github.com/git/hello-world2.git $ git fetch hw2 整合 hw2 repository 到 master branch $ git merge min/master
  16. 16. Creating and Commiting 進入專案資料夾 $ cd (project-directory) 建立一個 git repository $ git init 新增一些程式碼或文件 $ (add some files) 把這些檔案通通加入 git 管理 $ git add . 將這些檔案簽入 repository $ git commit -m 'Initial commit'
  17. 17. Cloning and Creating a Patch 從 github 的專案 hello-world 的 repo 中複製一份回來 $ git clone git://github.com/git/hello-world.git 進入專案資料夾 $ cd hello-world 新增或修改一些檔案 $ (edit files) 將新增修改後的檔案加入 git 管理 $ git add (files) 簽入 repository $ git commit -m 'Explain what I changed' 產生 patch 檔案 $ git format-patch origin/master
  18. 18. diff & show 比較目前的修改與 repository 的差異 $ git diff HEAD 比較 staging area 跟 repository 的差異 git diff --cached 看看修改了甚麼 $ git show HEAD # 此版本修改的資料 $ git show HEAD^ # 前一版修改的資料 $ git show HEAD^^ # 前前一版修改的資料 $ git show HEAD~4 # 前前前前一版修改的資料
  19. 19. 上傳資料到遠端 repository $ git push 下載遠端資料至本機 repository 並且自動 merge $ git pull
  20. 20. branch 新建一個分支 $ git branch experimental 切換到此分支 $ git checkout experimental 看看目前有哪些分支 $ git branch 切回主分支 $ git checkout master 刪除分支 $ git branch -d experimental
  21. 21. merge 將 experimental 分支與主分支合併 $ git checkout master $ git merge experimental 將別人的成果與自己的 repository 合併 $ git fetch someone $ git merge someone/master
  22. 22. Git Cheat Sheet http://jan-krueger.net/development/git-cheat- sheet-extended-edition
  23. 23. References 我愛Git - jserv http://jserv.sayya.org/writing/loving-git.pdf Linus Torvalds on git http://people.debian.org.tw/~chihchun/2008/12/19/linus-torvalds-on-git/ Why Git is Better than X (中文版) http://zh-tw.whygitisbetterthanx.com/ Git on Windows http://www.gitcasts.com/posts/git-on-windows TortoiseGit http://code.google.com/p/tortoisegit/ 使用 git 來 mirror CVS repository http://cyt93cs.pixnet.net/blog/post/26629828 [Geek] Git and Gitweb http://walkingice.twbbs.org/blog/?p=504 Git Study http://josephjiang.com/entry.php?id=308
  24. 24. Thanks you!

×