# 二 、 Git Branch ###### tags: `GIT101` `進度筆記` `Lidemy心得``2020六月第三週` ## 為何需要 Branch ? 一條線的開發模式這樣會把所有開發進程都拉在同一條線上進行 , 這樣可能會有問題 , 所有需要多線程開發 , 即同時開發新功能(一條線) , 另外做版本修復(bug fix; 另一條線) 最後再合併成一個新釋出(Release)給使用者。 ## Branch 實際運作狀況像是 ?  ## 如何在 Git 開Branch `git branch -v` 就會在 master 旁開一個分支 , 同時告訴你是從哪分出來的。  會告訴你從 change code.js 這個 commit 分出來 。 指令: `git branch -v name` 直接創立一個 branch 同時有名字; `git branch name` 後再用 `git branch -v` 看一下 , 即先給 branch 名字後再建立 。  ## 刪除 Branch `git branch -d name` (d for delete). ## 在 Git 內切換 Branch 同樣用 `git checkout BranchName` 再用 `git branch -v` 可以看你目前在哪 。   假如我今天修改了最新 branch 的檔案 , 這時候一樣可以用 `git status` 看修改檔案的狀況 , 並用 `git commit -am "name"` 把檔案加入 branch 的版本控制下。  同時再用 `git log` 看有哪些版本時 , 會看到你在哪裡(青字 HEAD) 、 綠字表示有 branch 的 commit(2個); 同時 master(change code.js) 底下有個 branch(new-feature), 而基於 code.js 再修改後有個 branch 的 commit(new-feature2).  ## Git Merge(合併) 當開發完成後 , 要如何把 branch 合併到 master上 , 則使用 `git merge name` 。 可以先用 `git checkout master` 回到 master 上 , 接著用 `git branch -v` 看所在位置。  使用 `git merge 你欲合併的 branchname` , 接著使用 `git log` 可看到已把 branch 合併到 master 下 。  完成後記得 `git branch -d branchname` 把 branch 刪掉 , 表示你已經開發完成 。  ## Git Conflict(發生衝突怎辦) 如果同時跟同事改到同一行文字和檔案怎辦 , Git 會不知道要相信誰的修改 , 需要手動告訴 Git 我要留哪個檔案 , 即兩個 branch 合併時有衝突 , 但 Git 會告訴你問題在哪 , 自行選擇要怎麼處理 ↓  假設開發新功能 , 開一個新的 branch 是好習慣 , 接著繼續開發 , 最後切回 master 再 merge 如果有衝突就解決它 , 沒衝突即開發完成 。 [](https://lidemy.slack.com/app_redirect?channel=U014VGFNE6S) [](www.linkedin.com/in/jhen-yu-shih-082b29129) [](https://www.instagram.com/haku2zas/?hl=zh-tw)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up