SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Git 簡介
資工4A 952847
鄭新霖
lancetw@gmail.com
2010.01.15
甚麼是 Git?
Git --- The stupid content tracker
http://git-scm.com/
分散式 SCM
自由軟體 (Freeware)
開放原始碼 (Open Source)
速度很快
簡單易用的分支 (Branch) 系統
由 Linux 之父 Linus Torvalds 主導開發
Linus recommends Windows7
http://www.flickr.com/photos/christaleye/4033726325/
緣起
2002年,Linus Torvalds 採用封閉式
的 BitKeeper (bk) 分散式版本控制系
統,降低日趨複雜的開發管理難度
自由軟體之父 Richard Stallman 為
此提出警告,Linux 重要的核心開發
者相繼拒用 bk
“Freedom is more important than
convenience.” -- Richard Stallman
2005年,Linus Torvalds 開始著手建
立新的分散式 SCM -- git
Linux kernel 平均以每小時 85.6 行的速度增加
http://mirror.celinuxforum.org/gitstat/index.php
Linus Torvalds on git
http://www.youtube.com/watch?v=4XpnKHJA
ok8
Linus 在 Google Tech Talk 的演講
Staging Area
Git 的分支 (Branch)
“Branches are cheap and easy, so this is a
good way to try something out.”
適用任何工作流程 (workflow)
Subversion 式的工作流程
整合管理員工作流程
司令官與副手的工作流程
…
Subversion 式的工作流程
整合管理員工作流程
司令官與副手的工作流程
GitHub
http://github.com/
使用者導向/社交導向的 repository hosting
設定個人資訊
$ git config --global user.name “Hsin-lin
Cheng”
$ git config --global user.email
“lancetw@gmail.com”
建立 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
Creating and Commiting
進入專案資料夾
$ cd (project-directory)
建立一個 git repository
$ git init
新增一些程式碼或文件
$ (add some files)
把這些檔案通通加入 git 管理
$ git add .
將這些檔案簽入 repository
$ git commit -m 'Initial commit'
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
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 # 前前前前一版修改的資料
上傳資料到遠端 repository
$ git push
下載遠端資料至本機 repository 並且自動 merge
$ git pull
branch
新建一個分支
$ git branch experimental
切換到此分支
$ git checkout experimental
看看目前有哪些分支
$ git branch
切回主分支
$ git checkout master
刪除分支
$ git branch -d experimental
merge
將 experimental 分支與主分支合併
$ git checkout master
$ git merge experimental
將別人的成果與自己的 repository 合併
$ git fetch someone
$ git merge someone/master
Git Cheat Sheet
http://jan-krueger.net/development/git-cheat-
sheet-extended-edition
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
Thanks you!

Contenu connexe

Tendances

Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學
芳本 林
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档
superwen
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
 

Tendances (20)

Android 程式設計(4)
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學
 
Git内部培训文档
Git内部培训文档Git内部培训文档
Git内部培训文档
 
Git & Sourcetree 介紹
Git & Sourcetree 介紹Git & Sourcetree 介紹
Git & Sourcetree 介紹
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
Git前世今生
Git前世今生Git前世今生
Git前世今生
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
連哈秋都懂的Git教學
連哈秋都懂的Git教學連哈秋都懂的Git教學
連哈秋都懂的Git教學
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
 
Git Tutorial 教學
Git Tutorial 教學Git Tutorial 教學
Git Tutorial 教學
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git & git hub v1.2
Git & git hub v1.2Git & git hub v1.2
Git & git hub v1.2
 

En vedette (6)

Git scm-final
Git scm-finalGit scm-final
Git scm-final
 
Lightning Talk: Git VCS
Lightning Talk: Git VCSLightning Talk: Git VCS
Lightning Talk: Git VCS
 
Git SCM
Git SCMGit SCM
Git SCM
 
Git scm
Git scmGit scm
Git scm
 
ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析ビッグデータ関連Oss動向調査とニーズ分析
ビッグデータ関連Oss動向調査とニーズ分析
 
SCM Dashboard
SCM DashboardSCM Dashboard
SCM Dashboard
 

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

First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgit
Rhythm Sun
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
Wen-Tien Chang
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
Cloud Tu
 
Git使用入门
Git使用入门Git使用入门
Git使用入门
dpf2e
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
zzc89522
 

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

Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgit
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程
 
Git 教學
Git 教學Git 教學
Git 教學
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git使用入门
Git使用入门Git使用入门
Git使用入门
 
版本控制 - Mercurial
版本控制 - Mercurial版本控制 - Mercurial
版本控制 - Mercurial
 
Git share
Git shareGit share
Git share
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包
 
Git 实战
Git 实战Git 实战
Git 实战
 
Git基础培训
Git基础培训Git基础培训
Git基础培训
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
 
Kubernetes device plugins
Kubernetes device pluginsKubernetes device plugins
Kubernetes device plugins
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharing
 

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