SlideShare a Scribd company logo
大家應該都要會的工具 git
By Alan Tsai 2017-06-24
從放棄到會用 – 分支篇
關於我
2
▰Alan Tsai 蔡孟玹
▰後端(攻城)工程師
▻Web Developer - 主要使用 .Net/C# 和 Asp .Net Mvc
▰看小說
▰找到我 – contact@alantsai.net
▻http://blog.alantsai.net - Alan Tsai 的學習筆記
▻{服務}.alantsai.net
▻http://fb.alantsai.net - fb
▻http://ln.alantsai.net – linkeding
▻http://ss.alantsai.net - slideshare
Agenda
3
▰Branch 目的
▰了解git 運作模式
▰合併
Branch的目的
4
千金難買早知道
5
開branch
6
▰工作快速切換
▻Feature
▻Issue
▰嘗試性
▰開branch換時間點
Git的運作機制
7
版控什麼
8
▰其他版控看的是檔案變更
▰http://git-scm.com/book/en/Getting-Started-Git-Basics#Snapshots,-Not-Differences
版控什麼
9
▰Git版控的是內容變更
▰每個commit是snapshot
▰http://git-scm.com/book/en/Getting-Started-Git-Basics#Snapshots,-Not-Differences
Git 構成單位
10
▰Object
▻記錄資訊
▰Ref
▻指針(pointer)資訊
▻快速定義到某一個組合
Git的構成單位 - object
11
▰Object – SHA1
▻tree
▻同等於 資料夾
▻blob
▻同等於 檔案
▻Commit
▻tree、父 commit
▻Annotated tag
▻同commit
Git的構成單位 - object
12
Git的構成單位 – 靈活的組成單位
13
Git commit示意圖
14
▰Git commit示意圖
Git commit示意圖 – 簡化
15
C0 C1 C2
Git的構成單位 - ref
16
▰每次都要記住sha1很麻煩
▰一個好記得名字
▻預設有個 master branch
▻有個HEAD,代表目前位置
C0 C1 C2
master
HEAD
Git commit到底發生什麼
17
▰當commit的時候
▻由head帶著目前branch前進
▻建立出commit
C0 C1 C2
master
HEAD
C3
開始使用Branch
18
建立branch 並且切換
19
建立branch 並且切換
21
▰或
git checkout –b branch1
git branch branch1
C0 C1 C2
master
HEAD
branch1
HEAD
git checkout branch1
建議的branch命名方式
22
▰通常branch會是一個功能或者bug修改
▻{issue tracking號碼}-概述
▻2-addValidation
▰Branch前面加上前戳 – 用 斜線分隔
▻容易區分類型
▻feautre/2-addValidation
▻hotfix/3-exceptionDivideByZero
切換、刪除 branch
23
▰圓圈 粗體 目前所在的branch
▻點branch名稱兩下
▻也可以點log兩下切換branch
▰刪除branch
▻右鍵 -> Delete {branch 名稱}
git checkout branch1
git branch –d branch1
切換branch注意事項
25
▰Working Directory
▻最好是乾淨無修改
▰可以搭配stash
▰Detach HEAD
刪除 branch 注意事項
26
▰不能刪除目前所在的branch
▰如果被刪除的branch尚未合併 預設不給刪
▻要加上 -D 就可以刪
C0 C1 C2
master
HEAD
C3
branch1
Merge Branch
27
Merge branch(合併分支)
28
▰如果不能合併,分支就沒意義了
▰分支的概念
▰從 目前分支 合併 到 選取的分支
git checkout master
git merge branch1
Fast-Forward Merge
29
▰找到 master 和 branch1的共同commit
▻C2
▰C2到branch1(C3)差了一個commit
▰可以快轉合併
C0 C1 C2
master
HEAD
C3
branch1
Non Fast Forward Merge
30
▰找到 master 和 branch1的共同commit
▻C2
▰總共缺少C3和C4
▻做一個Non Fast Forward Merge
C0 C1 C2
master
HEAD
C3
branch1
C4
C5
Fast Forward Merge vs Non Fast Forward Merge
31
▰FF
▻不會有衝突
▰N FF
▻很明確看的出來有合併
FF也當成N FF
32
▰更容易看出有合併過
▻搭配
▻增加合併說明
▰適合使用情境
▻想要明確表示有整并過
▻搭配rebase
git merge –-no-ff branch1
git commit --amend
衝突(Merge Conflict)這件事
33
▰當有非FF Merge的時候就有可能衝突
▰衝突發生原因
▻當同一行有完全不同的修改
▻機器無法判斷要用那個
▻當非同一行有修改
▻工具一般能夠自動判斷是相關 – 因此自動幫忙處理
衝突的底層
34
▰衝突發生的時候有4個檔案
▻$LOCAL – 發起 merge的branch內容版本
▻master的內容 (C4)
▻不會修改
▻$REMOTE – 要被merge的branch內容版本
▻Branch1的內容 (C3)
▻不會修改
▻$BASE - $LOCAL 和 $REMOTE為修改之前的樣子
▻兩邊的原始共通 (C2)
▻不會修改
▻$MERGED – 最後合併的樣子
▻修改這個檔案 (C5)
C2
master
HEAD
C3
branch1
C4
C5
設定自己習慣的解決衝突工具
35
▰推薦Kdiff3
TortoiseMerge vs KDiff3
36
發生衝突 – 在做Non FF merge會出現
37
解決衝突 – 用剛剛設定的kdiff
38
▰對conflict檔案點右鍵
▻Launch External Merge Tool
▻呼叫剛剛設定的kdiff3
解決衝突 - commit
39
▰確認好內容
▰在做一個commit把內容儲存
▰會自動帶入conflict資訊
解決衝突 – 重來
40
▰如果解決衝突期間想要重來
▰可以通過:
▻選擇要重來的檔案
▻上面的「Action」
▻Resolve Conflicts
▻Restart merge
rebase branch
41
請注意
42
▰Rebase功能很強大
▻但是要注意
▻千萬不能對已經送上去的commit做rebase
▰Commit越快越多越好
▻但是會太雜
▻透過rebase做一次清理
▰有些人不建議使用 – 不過用的好幫助很大
Git rebase
43
▰可以重新把 commit apply上去
▻變成1條線
▰目的
▻整理commit
▻調整訊息
▻拆解commit
Git rebase
44
▰搭配 git merge --no-ff
▻產生明顯有branch過
C2
master
HEAD
C3
branch1
C4 ‘C3
git rebase --interactive
45
▰放上去的時候重新整理
不能動的Branch
git tag
46
Git tag – 打標籤
47
▰記錄某個點
▰列出目前的tag
▰Tag有兩種
▻annotated tag
▻可以寫說明
▻Lightweight tag
▻Sign Tag
▰建議使用annotated tag
git tag
git tag –a v1.0
git tag v1.0
Git tag – 好的tag標籤
48
▰Semantic Version
▻Major.Minor.Build
▰要不要加v看個人
Git push --tag
49
▰Push的時候記得包含tag
▰才會上去
其他特殊指令
Cherry pick
50
從某個節點取內容 - Cherry pick
51
▰想從一堆commit抓一個過來
▰修bug commit
C1 C2
C3
branch1
C4
C5
‘C3
git cherry-pick {c3}
master
HEAD
從某個節點取內容 - Cherry pick
52
遠端溝通
53
和遠端溝通
54
▰遠端的git和本地的git一樣
▰有一個特殊的branch代表遠端的位置
▰透過 pull 和 push 來和遠端 sync
git push
55
▰同merge一樣概念
▻變成找出 local和遠端版本差異
▻Push上去
設定遠端
56
▰免費的遠端
▻Github
▻Visual Studio Team Service
▻雲端TFS,5人以內免費
▻Bitbucket
▰VSTS做範例
在遠端先建立
57
▰Visual Studio Team Service
設定remote網址
58
git remote add
https://alantsai.visualstudio.com/DefaultCollection/_git/testProject
Git push
59
▰把本地內容push上去
▻Track表示本地branch和remote有
▻對應關係
git push –u origin master
輸入認證資訊
60
▰兩步驗證
看到多一個origin/master
61
和遠端溝通的3個指令說明
62
▰Fetch(獲取)
▻從遠端取得最新
▻更新 origin/master
▰Pull(拉取)
▻從遠端取得最新,並且和本地track branch做merge
▻ git fetch + git merge
▰Push(推送)
▻把本地和origin/master的差異push上去
從遠端開始
63
▰git clone {url}
▰同等於
▻git init
▻git remote add origin {url}
▻git pull
遠端溝通原則
64
▰絕對不能夠改已經推送內容
▻git commit –amend
▻Rebase
▰Git會保護你
▻不會允許你push
▻但是別加上 --force
和遠端溝通原則
65
▰記得先和遠端update過
▻Pull或fetch
▰在push
Branch模式/Workflow
66
Branch模式意義
67
▰如何多人協同
▰Centralized
▰Feature (topic) Branch
▰Git flow
▰Fork Repository Flow
Centralized
68
▰ 和SVN一樣運作模式
▰ 總共就一個master分支
▰ git pull加上 –rebase 保持更新線行
▻ 或呼叫
git fetch origin
git rebase origin
Centralized
69
▰最好開始上手
▻和以前svn運作模式一樣
▻又能夠使用git的優勢
▰問題
▻功能無法協同合作
▰Log
▻看起來是線行
Feature (topic) Branch
70
▰Master為主線
▰有功能就建立一個branch做開發
▰最後做完在merge回master
▻搭配pull request做review
▰Merge完branch就刪掉
Git flow模式
71
▰2010 Vincent Driessen提出
▰http://nvie.com/posts/a-successful-git-branching-model/
▰比較複雜
▻把穩定版本和最新開發版本切開
Git flow模式
72
▰兩條主線
▻Master
▻代表目前最stable版本
▻Develop
▻代表目前最新程式碼(nightly build)
▰其他分支線
▻feature/*
▻hotfix/*
▻release/*
Git flow 模式 - feature
73
▰用作於功能開發
▰一般開在本地
▰需要協同才push上去
▰從哪個branch分支
▻develop
▰合並回
▻develop
Git flow 模式 - release
74
▰當develop準備上線
▰用於更新版號資訊
▰從哪個branch分支
▻develop
▰合並回
▻develop
▻master
▰在master建立tag
Git flow 模式 - hotfix
75
▰緊急bug
▻ 需要馬上處理
▰從哪個branch分支
▻master
▰合並回
▻develop
▻master
▰在master建立tag
Git flow工具
76
▰因為複雜,所以有個工具專門做這個事情
▻https://github.com/nvie/gitflow
▻https://github.com/petervanderdoes/gitflow-avh
▻語法都是:git flow {branch類型} {動作} 參數
git flow init
git flow feature start {name}
// 一般開發
git flow feature finish {name}
// 需要push或pull
git flow feature push {name}
git flow feature track {name}
Git flow – source tree
77
Git flow – source tree – 結束branch
78
Fork Workflow
79
▰也可以稱為github flow
▰和Feature Branch Flow一樣
▰差異在於
▻要開發的人從原始先做一個fork
▻開branch開發
▻做一個pull request回去
▰https://guides.github.com/introduction/flow/
其他工具
80
Git lfs
81
▰非文字類型越長越大
▰Git lfs 把commit記錄為hash pointer
▻實體檔案存在另外一個地方
Git lfs
82
▰安裝
▻https://git-lfs.github.com/
▰執行 – 電腦只要執行一次就好
▰在專案執行
git lfs install
git lfs track “*.psd”
git add .gitattributes
git commit
Source Tree
83
結語
84
怎麼開始使用git
85
▰沒有那個比較好,只有那個比較適合
▰可以先從自己local玩起
▰如果公司使用SVN,或TFS – 都可以用git溝通
▻git svn - 開始使用git - 用git操作svn repo
▻Git tfs
相關資源
86
▰Git官網 https://git-scm.com/
▻Pro Git https://git-scm.com/book/en/v2
▰Git指令圖解說明
▻http://marklodato.github.io/visual-git-guide/index-en.html
▻https://onlywei.github.io/explain-git-with-d3
▰線上git操作
▻https://try.github.io/levels/1/challenges/1
▻http://onlywei.github.io/explain-git-with-d3/#branch
▻http://pcottle.github.io/learnGitBranching/
相關資源2
87
▰連猴子都能夠懂的Git入門指南
▻http://backlogtool.com/git-guide/tw/
▰30 天精通 Git 版本控管
▻裡面有進入到git的細節
▻https://github.com/alantsai/Learn-Git-in-30-days
▰關注我的部落格 – 特別是git標籤 -
http://blog.alantsai.net/search/label/Git
88
Q&A
感謝大家
任何問題都可以在
contact@alantsai.net
部落格-Alan Tsai 的學習筆記
找到我
CREDITS
Special thanks to all the people who made and
released these awesome resources for free:
▰ Presentation template by SlidesCarnival
▰ Photographs by Startup Stock Photos
89

More Related Content

What's hot

連哈秋都懂的Git教學
連哈秋都懂的Git教學連哈秋都懂的Git教學
連哈秋都懂的Git教學
hydai
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
Wen Liao
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
Will Huang
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Bo-Yi Wu
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局
Anna Su
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
Max Ma
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
Chu-Siang Lai
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub維佋 唐
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 
git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學Doremi Lin
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
Duncan Chen
 
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
 
Code review on github training ( beginner )
Code review on github training ( beginner )Code review on github training ( beginner )
Code review on github training ( beginner )JS Lee
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學芳本 林
 
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
Bo-Yi Wu
 

What's hot (20)

連哈秋都懂的Git教學
連哈秋都懂的Git教學連哈秋都懂的Git教學
連哈秋都懂的Git教學
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
Git Tutorial 教學
Git Tutorial 教學Git Tutorial 教學
Git Tutorial 教學
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
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 and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
 
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 教學)
 
Code review on github training ( beginner )
Code review on github training ( beginner )Code review on github training ( beginner )
Code review on github training ( beginner )
 
Mercurial簡介與教學
Mercurial簡介與教學Mercurial簡介與教學
Mercurial簡介與教學
 
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
 

Similar to 大家應該都要會的工具 Git 從放棄到會用2-分支篇

COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
 
Git入門介紹
Git入門介紹Git入門介紹
Git入門介紹
mudream4869
 
Git流派與工作流程.pptx
Git流派與工作流程.pptxGit流派與工作流程.pptx
Git流派與工作流程.pptx
健誠 呂
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
Drake Huang
 
Git flow
Git flowGit flow
Git flow
shaokun
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
唯 李
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
 
Git
GitGit
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程
gemron
 
Git & git flow
Git & git flowGit & git flow
Git & git flow
Amo Wu
 
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )
Roberson Liou
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
Wei-Yuan Chang
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
medcl
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
Charles Tang
 
Git & git hub v1.2
Git & git hub v1.2Git & git hub v1.2
Git & git hub v1.2
Chris Chen
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upWen-Tien Chang
 

Similar to 大家應該都要會的工具 Git 從放棄到會用2-分支篇 (20)

COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Git入門介紹
Git入門介紹Git入門介紹
Git入門介紹
 
Git流派與工作流程.pptx
Git流派與工作流程.pptxGit流派與工作流程.pptx
Git流派與工作流程.pptx
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Git flow
Git flowGit flow
Git flow
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
Git
GitGit
Git
 
Git+使用教程
Git+使用教程Git+使用教程
Git+使用教程
 
Git & git flow
Git & git flowGit & git flow
Git & git flow
 
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )
 
Learning to Use Git | WeiYuan
Learning to Use Git | WeiYuanLearning to Use Git | WeiYuan
Learning to Use Git | WeiYuan
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
 
Git & git hub v1.2
Git & git hub v1.2Git & git hub v1.2
Git & git hub v1.2
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom up
 
Git教學
Git教學Git教學
Git教學
 

More from Alan Tsai

初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
Alan Tsai
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
Alan Tsai
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
Alan Tsai
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
Alan Tsai
 
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan TsaiMicrosoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Alan Tsai
 
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
Alan Tsai
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Alan Tsai
 
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
Alan Tsai
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
Alan Tsai
 
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
Alan Tsai
 
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
Alan Tsai
 
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
Alan Tsai
 
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
Alan Tsai
 
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
Alan Tsai
 
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
Alan Tsai
 
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
Alan Tsai
 
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
Alan Tsai
 
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
Alan Tsai
 
Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)
Alan Tsai
 
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
Alan Tsai
 

More from Alan Tsai (20)

初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
 
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan TsaiMicrosoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
 
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
 
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
 
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
 
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...我和阿九Azure有約 39 Azure Blob Storage 如何省錢?設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
 
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)我和阿九Azure有約 38 Azure Blob Storage 如何省錢?搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
 
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
 
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
 
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
 
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
 
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
 
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
 
Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)Azure Taiwan - Keep azure cost down (Azure 成本管控)
Azure Taiwan - Keep azure cost down (Azure 成本管控)
 
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
 

大家應該都要會的工具 Git 從放棄到會用2-分支篇

Editor's Notes

  1. https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
  2. https://www.git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
  3. https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
  4. https://www.git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell