Download pptx - Git & Sourcetree 介紹

Transcript

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) VS 分 散 式 (G I T )

• 更多說明

集 中 式 分 散 式

連 線 到 S ERVER 才 能 提 交 本 機 提 交 , 稍 後 上 傳

容 易 控 管 權 限 需 分 拆 儲 存 庫

一 各 檔 案 一 次 只 有 一 個 人 能 更新 ( 這 未 必 是 好 事 . . )

可 以 多 人 同 時 處 理 同 一 檔 案( 有 可 能 會 造 成 衝 突 )

MAS TER / S L AVE 正 規 軍 模 式

P EE R TO P EER游 擊 隊 模 式

需 要 嚴 謹 的 規 範 才 能 發 揮 效 果 容 易 於 各 種 詭 異 狀 態 中 使 用

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 TT P : / /W W W. BNE XT. CO M. T W /A RT ICLE /V IE W / ID /35643

W H AT I S S O U RC E T R E E

• 好用、免費、免費、免費的 Git GUI Client

• 公司 https://www.atlassian.com/

• 下載位置 https://www.sourcetreeapp.com/ (Win/Mac 版本都有 )

• 15 天后需要進行免費註冊

S OU RC E T E E 安裝

• 1. 下載後點兩下 ..

• 2. 輸入基本資料 for git (name, email)

• 非必須設定

• 某些網路環境中需要設定對外的 proxy (win/mac 不同 )

• 加入常見忽略設定 (.gitignore)

• 設定為中文環境 .. 不過他的中文我不是很懂 ..

S OU RC E T E E 安裝

• 基本資料畫面 (Mac)

S OU RC 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


Recommended