SlideShare a Scribd company logo
1 of 2
Remote
Repository
Other Git Repository
Local
Repository
new_branch_joshku
new_branch_bugfix
new_branch_feature
Clone
Fork
Pull Request
Create Pull Request
Merge from
remote branch
*1
開發中,隨時pull from master
確認開發是在最新的狀態中
以免發生之後合併造成reflix
*2
.gitignore 檔案
不只是比較機密的檔案,有時候一些程式編譯
的中間檔或暫存檔,因為每次只要一編譯就等
於產生一次新的檔案,對專案來說通常沒有實
質的利用價值,像這樣的檔案其實也不會想讓
它進到Git 裡。
Commit
Push
Fetch
*3
git fetch + git merge等同於git pull。
*4
如發生conflict 需手動解決,越頻繁的
branches越容易發生
*3採用Git-flow 開發流程
可以使用SourceTree 內建Git-flow功能
主要分支
1. master: 主要是用來放穩定、隨時可上線的版本。這個分支的來源只能從別的分支合併過來,開發者不會直
接Commit 到這個分支。因為是穩定版本,所以通常也會在這個分支上的Commit 上打上版本號標籤。
2. develop: 這個分支主要是所有開發的基礎分支,當要新增功能的時候,所有的Feature 分支都是從這個分
支切出去的。而Feature 分支的功能完成後,也都會合併回來這個分支。
支援性分支
1. Feature branches: 當要開始新增功能的時候,就是使用Feature 分支的時候了。Feature 分支都是從
Develop 分支來的,完成之後會再併回Develop 分支。
2. Release branches:當認為Develop 分支夠成熟了,就可以把Develop 分支合併到Release 分支,在這邊
進行算是上線前的最後測試。測試完成後,Release 分支將會同時合併到Master 以及Develop 這兩個分
支上。Master 分支是上線版本,而合併回Develop 分支的目的,是因為可能在Release 分支上還會測到
並修正一些問題,所以需要跟Develop 分支同步,免得之後的版本又再度出現同樣的問題。
3. Hotfix branches: 當線上產品發生緊急問題的時候,會從Master 分支開一個Hotfix 分支出來進行修復,
Hotfix 分支修復完成之後,會合併回Master 分支,也同時會合併一份到Develop 分支。
為什麼要合併回Develop 分支?如果不這麼做,等到時候Develop 分支完成並且合併回Master 分支的時
候,那個問題就又再次出現了。
那為什麼一開始不從Develop 分支切出來修?因為Develop 分支的功能可能尚在開發中,這時候硬是要從
這裡切出去修再合併回Master 分支,只會造成更大的災難。

More Related Content

What's hot

Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理彼得潘 Pan
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence TutorialHo Kim
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用Will Huang
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Hsin-lin Cheng
 
開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 Git開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 GitCalvin Huang
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀Wen Liao
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包Chen-Ming Yang
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - GitAlan Tsai
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作奕浦 郭
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github TutorialTing Wen Su
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Will Huang
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
 
Git & Sourcetree 介紹
Git & Sourcetree 介紹Git & Sourcetree 介紹
Git & Sourcetree 介紹Adison wu
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略Lucien Lee
 
git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學Doremi Lin
 
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理Pu Lee
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuanWei-Yuan Chang
 
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git WorkflowUse Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git WorkflowLiangjun Jiang
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹Max Ma
 

What's hot (20)

Xcode 的 git 版本管理
Xcode 的 git 版本管理Xcode 的 git 版本管理
Xcode 的 git 版本管理
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
 
Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)Git 簡介(古時候的簡報備份)
Git 簡介(古時候的簡報備份)
 
開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 Git開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 Git
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
20170510 git 懶人包
20170510 git 懶人包20170510 git 懶人包
20170510 git 懶人包
 
Git 简介
Git 简介Git 简介
Git 简介
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
 
Git&Github Tutorial
Git&Github TutorialGit&Github Tutorial
Git&Github Tutorial
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Git & Sourcetree 介紹
Git & Sourcetree 介紹Git & Sourcetree 介紹
Git & Sourcetree 介紹
 
初心者 Git 上手攻略
初心者 Git 上手攻略初心者 Git 上手攻略
初心者 Git 上手攻略
 
git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學
 
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
 
Use Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git WorkflowUse Git-flow Manage Your Git Workflow
Use Git-flow Manage Your Git Workflow
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 

Similar to Git tutorial

Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshellNelson Tai
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战icy leaf
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍medcl
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
Github in xcode
Github in xcodeGithub in xcode
Github in xcode郁凱 曾
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub維佋 唐
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to gitBo-Yi Wu
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報Bachue Zhou
 
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
 
Learn git
Learn gitLearn git
Learn git甘 李
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹PingLun Liao
 
Git flow
Git flowGit flow
Git flowshaokun
 
Submodule && subtree
Submodule && subtreeSubmodule && subtree
Submodule && subtree哲 于
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTreeChu-Siang Lai
 

Similar to Git tutorial (20)

Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
Git基础培训
Git基础培训Git基础培训
Git基础培训
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Github in xcode
Github in xcodeGithub in xcode
Github in xcode
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
Git 实战
Git 实战Git 实战
Git 实战
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Git share
Git shareGit share
Git share
 
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 教學)
 
Learn git
Learn gitLearn git
Learn git
 
20150313 ian git
20150313 ian git20150313 ian git
20150313 ian git
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git flow
Git flowGit flow
Git flow
 
Submodule && subtree
Submodule && subtreeSubmodule && subtree
Submodule && subtree
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
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

  • 1. Remote Repository Other Git Repository Local Repository new_branch_joshku new_branch_bugfix new_branch_feature Clone Fork Pull Request Create Pull Request Merge from remote branch *1 開發中,隨時pull from master 確認開發是在最新的狀態中 以免發生之後合併造成reflix *2 .gitignore 檔案 不只是比較機密的檔案,有時候一些程式編譯 的中間檔或暫存檔,因為每次只要一編譯就等 於產生一次新的檔案,對專案來說通常沒有實 質的利用價值,像這樣的檔案其實也不會想讓 它進到Git 裡。 Commit Push Fetch *3 git fetch + git merge等同於git pull。 *4 如發生conflict 需手動解決,越頻繁的 branches越容易發生
  • 2. *3採用Git-flow 開發流程 可以使用SourceTree 內建Git-flow功能 主要分支 1. master: 主要是用來放穩定、隨時可上線的版本。這個分支的來源只能從別的分支合併過來,開發者不會直 接Commit 到這個分支。因為是穩定版本,所以通常也會在這個分支上的Commit 上打上版本號標籤。 2. develop: 這個分支主要是所有開發的基礎分支,當要新增功能的時候,所有的Feature 分支都是從這個分 支切出去的。而Feature 分支的功能完成後,也都會合併回來這個分支。 支援性分支 1. Feature branches: 當要開始新增功能的時候,就是使用Feature 分支的時候了。Feature 分支都是從 Develop 分支來的,完成之後會再併回Develop 分支。 2. Release branches:當認為Develop 分支夠成熟了,就可以把Develop 分支合併到Release 分支,在這邊 進行算是上線前的最後測試。測試完成後,Release 分支將會同時合併到Master 以及Develop 這兩個分 支上。Master 分支是上線版本,而合併回Develop 分支的目的,是因為可能在Release 分支上還會測到 並修正一些問題,所以需要跟Develop 分支同步,免得之後的版本又再度出現同樣的問題。 3. Hotfix branches: 當線上產品發生緊急問題的時候,會從Master 分支開一個Hotfix 分支出來進行修復, Hotfix 分支修復完成之後,會合併回Master 分支,也同時會合併一份到Develop 分支。 為什麼要合併回Develop 分支?如果不這麼做,等到時候Develop 分支完成並且合併回Master 分支的時 候,那個問題就又再次出現了。 那為什麼一開始不從Develop 分支切出來修?因為Develop 分支的功能可能尚在開發中,這時候硬是要從 這裡切出去修再合併回Master 分支,只會造成更大的災難。