Git
Ted
Agenda
Version Control Intro.
Git Flow
a successful git Model
Git Command Intro ( 主要)
reset/merge/rebase/cherry pick/stash...
Version Control
Intro.
b4 version control
沒有 史記歷 錄
不知道版本差別
難以尋找更改的版本
Version Control
Intro.
多人共同開發
程式碼難以合併
Version Control
Intro.
本地
集中式版控
SVN
分散式版控
Git
Version Control
Intro.
server 儲存版本記 ,大家將錄
變更 commit 到 server
if no connection …..
no history
no commit
集中式版控
Version Control
Intro.
大家各自擁有記錄
如果 server 壞掉可使用 local 資料
recovery
可以擁有 local branch
可在 local 端開發完成在 commit 至
server
開 bran...
Git Flow
git 開 branch 很方便,但是有沒有流程告訴大家如
何管理 branch?
a successful git branching model
Git Flow
Git Flow
主要分支
master : 永遠處在 production ready
develop : 最新的下次發 開發 態佈 狀
支援分支
feature : 開發新功能,從 develop 分支出來,完成後 merge 回 deve...
Git Command Intro.
Git Command Intro.
Branch Handle
• Merge / Rebase / Cherry Pick
Git Command Intro.
Merge
將兩條分支合併在一起
Rebase
將分支建立在 rebase 的節點上
https://bitbucket.org/Ted_Liang/merge_rebase
Rebase or Merge?
Git Command Intro.
在 branch 上完成了一個功能,該怎麼做?
Merge
Git Command Intro.
git merge master
Merge
Git Command Intro.
回到剛剛的情形
Rebase
Git Command Intro.
Git rebase master
Rebase
WTF?
Git Command Intro.
Rebase
Git Command Intro.
Rebase
When to use Rebase
想測試自己的功能在新版上是否正常 work
尚未 push
Git Command Intro.
Rebase
Never 千萬不要對已經 push 的資料做 rebase
改變 史記 ,會使已歷 錄 pull 該 branch 的人遇到問
題
Git Command Intro.
Merge and Rebase
以下的 branch 爲 myFunction2 做了一次 rebase 之後
想要將 rebase 後的資料 merge 進 master
Git Command Intro.
Merge and Rebase
直接 merge
merge —no-ff (no fast-
ward)
Rebase 的其他用法
rebase -i SHA 重新整理 commit
Git Command Intro.
Rebase
Git Command Intro.
cherry pick
Git Command Intro.
cherry pick
Git Command Intro.
stash
假設我在 branch 做了資料修正,當我準備 push 時,發現線上有兩個
commit
不管他直接 pull
git stash -> pull -> stash apply
Git Command Intro.
Revert
A
B
C
C’
錯誤的 push 時
錯誤的 merge 時
https://bitbucket.org/Ted_Liang/revert_reset
Git Command Intro.
Revert
Delete remote hello
Reset to waaaa
Push again
send mail to everyone
Cant delete main branch
Git Command Intro.
other
Revert 必須注意的事情
使用 revert 之後,假設之後想要把被 Revert 的 資料再度 merge 進去,不能使用 merge( 並
不會發生 merge 的動作 ) ,必須將 Revert 的資料再度 revert
Git Co...
版本比對
vi ~/.gitconfig
設定 diffmerge
版本比對
git difftool --dir c5ab886
96a9dd5
Q&A
大家盡量問....我盡量答 XD
Git簡報
Git簡報
Upcoming SlideShare
Loading in …5
×

Git簡報

422 views
365 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
422
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Git簡報

  1. 1. Git Ted
  2. 2. Agenda Version Control Intro. Git Flow a successful git Model Git Command Intro ( 主要) reset/merge/rebase/cherry pick/stash/revert/diff
  3. 3. Version Control Intro. b4 version control 沒有 史記歷 錄 不知道版本差別 難以尋找更改的版本
  4. 4. Version Control Intro. 多人共同開發 程式碼難以合併
  5. 5. Version Control Intro. 本地 集中式版控 SVN 分散式版控 Git
  6. 6. Version Control Intro. server 儲存版本記 ,大家將錄 變更 commit 到 server if no connection ….. no history no commit 集中式版控
  7. 7. Version Control Intro. 大家各自擁有記錄 如果 server 壞掉可使用 local 資料 recovery 可以擁有 local branch 可在 local 端開發完成在 commit 至 server 開 branch 不用錢 no connection…. still has history list 分散式版控
  8. 8. Git Flow git 開 branch 很方便,但是有沒有流程告訴大家如 何管理 branch? a successful git branching model
  9. 9. Git Flow
  10. 10. Git Flow 主要分支 master : 永遠處在 production ready develop : 最新的下次發 開發 態佈 狀 支援分支 feature : 開發新功能,從 develop 分支出來,完成後 merge 回 develop Release : 準備 release 的版本,只修 bug ,從 develop 分支出來,完成後 merge 回 master and develop hotFix : 等不及 release 必須馬上修 上線的情況,會從趕 master 分支出來,完成後 merge 回 master 和 develop
  11. 11. Git Command Intro.
  12. 12. Git Command Intro. Branch Handle • Merge / Rebase / Cherry Pick
  13. 13. Git Command Intro. Merge 將兩條分支合併在一起 Rebase 將分支建立在 rebase 的節點上 https://bitbucket.org/Ted_Liang/merge_rebase Rebase or Merge?
  14. 14. Git Command Intro. 在 branch 上完成了一個功能,該怎麼做? Merge
  15. 15. Git Command Intro. git merge master Merge
  16. 16. Git Command Intro. 回到剛剛的情形 Rebase
  17. 17. Git Command Intro. Git rebase master Rebase
  18. 18. WTF?
  19. 19. Git Command Intro. Rebase
  20. 20. Git Command Intro. Rebase When to use Rebase 想測試自己的功能在新版上是否正常 work 尚未 push
  21. 21. Git Command Intro. Rebase Never 千萬不要對已經 push 的資料做 rebase 改變 史記 ,會使已歷 錄 pull 該 branch 的人遇到問 題
  22. 22. Git Command Intro. Merge and Rebase 以下的 branch 爲 myFunction2 做了一次 rebase 之後 想要將 rebase 後的資料 merge 進 master
  23. 23. Git Command Intro. Merge and Rebase 直接 merge merge —no-ff (no fast- ward)
  24. 24. Rebase 的其他用法 rebase -i SHA 重新整理 commit Git Command Intro. Rebase
  25. 25. Git Command Intro. cherry pick
  26. 26. Git Command Intro. cherry pick
  27. 27. Git Command Intro. stash 假設我在 branch 做了資料修正,當我準備 push 時,發現線上有兩個 commit 不管他直接 pull git stash -> pull -> stash apply
  28. 28. Git Command Intro. Revert A B C C’
  29. 29. 錯誤的 push 時 錯誤的 merge 時 https://bitbucket.org/Ted_Liang/revert_reset Git Command Intro. Revert
  30. 30. Delete remote hello Reset to waaaa Push again send mail to everyone Cant delete main branch Git Command Intro. other
  31. 31. Revert 必須注意的事情 使用 revert 之後,假設之後想要把被 Revert 的 資料再度 merge 進去,不能使用 merge( 並 不會發生 merge 的動作 ) ,必須將 Revert 的資料再度 revert Git Command Intro. Revert
  32. 32. 版本比對 vi ~/.gitconfig 設定 diffmerge
  33. 33. 版本比對 git difftool --dir c5ab886 96a9dd5
  34. 34. Q&A 大家盡量問....我盡量答 XD

×