---
# System prepended metadata

title: Git版本控制

---

# Git版本控制

//建立資料夾存放Repository
//Source tree/Fork是上傳專案/程式碼到Github的工具
//一異動即Commit,及時存檔


### 1.上傳專案/程式碼
//Add/Create→Browse→檔案放置處→File Status→Update Files點選"+"→註解Commit→上傳後Push

*上傳時不選Stage all,防止檔案重複上傳

### 2.Github專案Colone
//Colone→複製專案網址→選擇專案儲存位置→檔名→File Status→Update Files點選"+"→註解Commit→上傳後Push→如檔案衝突先Pull後Push
*有時上傳新版本Pull不會顯示

//更新已Colone檔案時→Pull→File Status→Update Files點選"+"→註解Commit→上傳後Push→如檔案衝突先Pull後Push

* ### Branches
//Repository的分支
//遠端與本地的Repository都可有多個分支(分支是基於某版本發展出的平行時空)
//History→選取分支的基礎版本→Branch→Copy working parents→輸入分支名稱→Create Branch

* ### Tags,Search
//⽤標籤(Tag)來找版本(Search)紀錄(階段驗收或版本標註)
*標籤僅⽤來做標記,⽅便我們找到某筆版本紀錄

* ### Remote
//⽤來將遠端分⽀Checkout⾄本地端
*Checkout⾄本地端的分⽀,會顯⽰在Branches

* ### Stashes
//儲存暫時的結果
//按Stashes新增→Apply使用上次暫存結果

* ### Fetch
//檢視異動但不Pull

* ### Reset
//History→欲退回的版本紀錄→Reset
//Soft/Mixed/Hard(放棄目前本機未commit的異動)
*建議都先將異動commit後再reset

* ### Discard
//放棄⼯作區的版本異動
*回到原先版本檔案(異動版本會還原成原先)

### 3.Merge分支合到Main
//將Branch分支版本與Main融合(A版本merge到Main,Main可視A)

//創建一個Branch-自己進行的版本
//選Branch-自己進行的版本→異動後Push到遠端→選Branch-Main→選擇要Merge的進度點(剛才Push的進度點,通常為Main最新進度點)→選Merge回Main(要click"create a new commit")→Push→如檔案衝突先Pull後Push







