G I T & S O U C E T R E E 簡 介
什 麼 是 版 本 控 制 系 統 ? 能 吃 嗎 ?
• 版本控制是一個能夠記錄一個或一組檔案在某一段時間
的變更,使得讀者以後能取回特定版本的系統。
• 記錄檔案變更的系統
• 可提供每次變更(提交)的有意義說明
• 方便取回特定版本
為 什 麼 要 版 本 控 制 系 統 ?
• 檔案被別人或自己覆蓋、甚至遺失
• 想復原前幾天/幾小時/幾分鐘前的版本
• 想知道跟前幾天寫的差異在哪裏
• 誰改了這行程式碼?什麼時候?一起改的有哪些?為什
麼?
程式上線後,需要分成維護版和開發版
非 要 版 本 控 制 系 統 嗎 ?
• 那些台灣產業所缺少的
• 檔案改名備份神功
• 一各檔案一天改50次時,要存幾個備份?
• 依賴檔案變更時,前端怎麼知道?
• 資料夾改名備份護體大法
• 不同資料夾內容有哪些檔案的哪些內容有改變?為什
麼?
其 他 好 處
• 降低 Code Review 門檻,實現 Code Review
• 增強編寫能力
• 找出責任歸屬
• CI 持續整合開發的前置技能點
• 還需要unit test, unit test 需要MVC架構..
• 更好的工作
• GIT 現在是大軟體公司應徵的必備條件!
版 本 控 制 系 統 比 較
集 中 式 ( S V N ) V S 分 散 式 ( G I T )
• 更多說明
集 中 式 分 散 式
連 線 到 S E R V E R 才 能 提 交 本 機 提 交 , 稍 後 上 傳
容 易 控 管 權 限 需 分 拆 儲 存 庫
一 各 檔 案 一 次 只 有 一 個 人 能 更
新 ( 這 未 必 是 好 事 . . )
可 以 多 人 同 時 處 理 同 一 檔 案
( 有 可 能 會 造 成 衝 突 )
M A S T E R / S L A V E
正 規 軍 模 式
P E E R T O P E E R
游 擊 隊 模 式
需 要 嚴 謹 的 規 範 才 能 發 揮 效 果 容 易 於 各 種 詭 異 狀 態 中 使 用
W H Y I L I K E G I T ?
• 門檻低: 不用 server
• 其實svn 也可以本機使用,不過麻煩..門檻比較高
• Commit 成本低
• 不用連線、不用check out
• 最小單元為"行",而非檔案
• 可以 commit 單行/數行
• 自帶比對功能: diff
向 G I T H U B 投 降 ! G O O G L E C O D E 明
年 正 式 關 閉
H T T P : / / W W W . B N E X T . C O M . T W / A R T I C L E / V I E W / I D / 3 5 6 4 3
W H A T I S S O U R C E T R E E
• 好用、免費、免費、免費的 Git GUI Client
• 公司 https://www.atlassian.com/
• 下載位置 https://www.sourcetreeapp.com/ (Win/Mac 版
本都有)
• 15天后需要進行免費註冊
S O U R C E T E E 安 裝
• 1. 下載後點兩下..
• 2. 輸入基本資料 for git (name, email)
• 非必須設定
• 某些網路環境中需要設定對外的 proxy (win/mac 不同)
• 加入常見忽略設定(.gitignore)
• 設定為中文環境..不過他的中文我不是很懂..
S O U R C E T E E
安 裝
• 基本資料畫面(Mac)
S O U R C E T R E E 開 始 使 用
• 建立 ST 管理的repo
• 對ST而言都是新增 REPO(儲存庫),差別在作法
常 用 設 定 — I G N O R E L I S T
• https://github.com/github/gitignore
• 使用 regular expresstion 規則
• 可分成 global/project ignore list
• global ignore: .recyclebin, *.tmp
• repo ignore: *.json
最 常 用 功 能 : C O M M I T 提 交
• commit!!
• by task
• by file
• by segment
• by LINE!!
推 薦 作 法
• DO: 做了什麼
• RE: 為什麼
• ps: 其他的碎碎念
其 他 有 用 功 能
• diff
• log selected: 檔案演進
• blame: 找出這行是誰寫的!
• diff 衍生之 code review
• code review: 透過檢查每次版本的差異,了解撰寫能力
• Tag
D I F F
• 不同檔案內容的比對,也可
以是前一版本與目前版本
Log Selected
所選取檔案的歷次修改記錄
Blame Selected
選取檔案目前版本中,每行的最後一次更改者
A N D M O R E . .
• branch & git flow
• 中文 https://ihower.tw/blog/archives/5140
• 英文 http://danielkummer.github.io/git-flow-
cheatsheet/
• 高上大的雲端托管服務: github/bitbucket
• 整合其他 git: git-submodule
參 考 資 料
• 擊敗 Google、微軟開發者平台,GitHub 憑的是什麼?
• 台灣所缺少的: 版本控制系統
• google "git svn 比較"
• Git達人教你搞懂GitHub基礎觀念

Git & Sourcetree 介紹

  • 1.
    G I T& S O U C E T R E E 簡 介
  • 2.
    什 麼 是版 本 控 制 系 統 ? 能 吃 嗎 ? • 版本控制是一個能夠記錄一個或一組檔案在某一段時間 的變更,使得讀者以後能取回特定版本的系統。 • 記錄檔案變更的系統 • 可提供每次變更(提交)的有意義說明 • 方便取回特定版本
  • 3.
    為 什 麼要 版 本 控 制 系 統 ? • 檔案被別人或自己覆蓋、甚至遺失 • 想復原前幾天/幾小時/幾分鐘前的版本 • 想知道跟前幾天寫的差異在哪裏 • 誰改了這行程式碼?什麼時候?一起改的有哪些?為什 麼? 程式上線後,需要分成維護版和開發版
  • 4.
    非 要 版本 控 制 系 統 嗎 ? • 那些台灣產業所缺少的 • 檔案改名備份神功 • 一各檔案一天改50次時,要存幾個備份? • 依賴檔案變更時,前端怎麼知道? • 資料夾改名備份護體大法 • 不同資料夾內容有哪些檔案的哪些內容有改變?為什 麼?
  • 5.
    其 他 好處 • 降低 Code Review 門檻,實現 Code Review • 增強編寫能力 • 找出責任歸屬 • CI 持續整合開發的前置技能點 • 還需要unit test, unit test 需要MVC架構.. • 更好的工作 • GIT 現在是大軟體公司應徵的必備條件!
  • 6.
    版 本 控制 系 統 比 較 集 中 式 ( S V N ) V S 分 散 式 ( G I T ) • 更多說明 集 中 式 分 散 式 連 線 到 S E R V E R 才 能 提 交 本 機 提 交 , 稍 後 上 傳 容 易 控 管 權 限 需 分 拆 儲 存 庫 一 各 檔 案 一 次 只 有 一 個 人 能 更 新 ( 這 未 必 是 好 事 . . ) 可 以 多 人 同 時 處 理 同 一 檔 案 ( 有 可 能 會 造 成 衝 突 ) M A S T E R / S L A V E 正 規 軍 模 式 P E E R T O P E E R 游 擊 隊 模 式 需 要 嚴 謹 的 規 範 才 能 發 揮 效 果 容 易 於 各 種 詭 異 狀 態 中 使 用
  • 7.
    W H YI L I K E G I T ? • 門檻低: 不用 server • 其實svn 也可以本機使用,不過麻煩..門檻比較高 • Commit 成本低 • 不用連線、不用check out • 最小單元為"行",而非檔案 • 可以 commit 單行/數行 • 自帶比對功能: diff
  • 8.
    向 G IT H U B 投 降 ! G O O G L E C O D E 明 年 正 式 關 閉 H T T P : / / W W W . B N E X T . C O M . T W / A R T I C L E / V I E W / I D / 3 5 6 4 3
  • 9.
    W H AT I S S O U R C E T R E E • 好用、免費、免費、免費的 Git GUI Client • 公司 https://www.atlassian.com/ • 下載位置 https://www.sourcetreeapp.com/ (Win/Mac 版 本都有) • 15天后需要進行免費註冊
  • 10.
    S O UR C E T E E 安 裝 • 1. 下載後點兩下.. • 2. 輸入基本資料 for git (name, email) • 非必須設定 • 某些網路環境中需要設定對外的 proxy (win/mac 不同) • 加入常見忽略設定(.gitignore) • 設定為中文環境..不過他的中文我不是很懂..
  • 11.
    S O UR C E T E E 安 裝 • 基本資料畫面(Mac)
  • 12.
    S O UR C E T R E E 開 始 使 用 • 建立 ST 管理的repo • 對ST而言都是新增 REPO(儲存庫),差別在作法
  • 13.
    常 用 設定 — I G N O R E L I S T • https://github.com/github/gitignore • 使用 regular expresstion 規則 • 可分成 global/project ignore list • global ignore: .recyclebin, *.tmp • repo ignore: *.json
  • 14.
    最 常 用功 能 : C O M M I T 提 交 • commit!! • by task • by file • by segment • by LINE!!
  • 15.
    推 薦 作法 • DO: 做了什麼 • RE: 為什麼 • ps: 其他的碎碎念
  • 16.
    其 他 有用 功 能 • diff • log selected: 檔案演進 • blame: 找出這行是誰寫的! • diff 衍生之 code review • code review: 透過檢查每次版本的差異,了解撰寫能力 • Tag
  • 17.
    D I FF • 不同檔案內容的比對,也可 以是前一版本與目前版本
  • 18.
  • 19.
  • 20.
    A N DM O R E . . • branch & git flow • 中文 https://ihower.tw/blog/archives/5140 • 英文 http://danielkummer.github.io/git-flow- cheatsheet/ • 高上大的雲端托管服務: github/bitbucket • 整合其他 git: git-submodule
  • 21.
    參 考 資料 • 擊敗 Google、微軟開發者平台,GitHub 憑的是什麼? • 台灣所缺少的: 版本控制系統 • google "git svn 比較" • Git達人教你搞懂GitHub基礎觀念