昨天我們介紹了如何回推,今天再來介紹其他的
git checkout 可以將工作區修改過的檔案丟棄,像是restore一樣,不過除此之外git checkout還有另外一個功能就是切換分支,以下我會用git checkout切換分支以及加上-b參數新增分支後並切換,作為範例。
除了可以使用git checkout以外我們還能夠使用git branch,git branch能夠新增、刪除以及更多有關分支的操作,搭配上git switch 切換分支
所以我自己使用下來的經驗,我會喜歡分開使用restore和git branch、git switch,指令各司其職,簡單明瞭,不過git checkout -b 能夠快速創建新分支並切換,確實是方便XD
遠端倉庫的操作,對於之前介紹的多半是本地的操作,一開始的起手式也是先介紹在本地新建分支後push,但是其實我們可以透過git clone直接從遠端複製下載到本地
接著我使用git fetch同步遠端倉庫的紀錄
然後從遠端倉庫,新增一個master分支並切換
有時候我們本地倉庫與遠端倉庫會有衝突,我們就可以使用git pull同步遠端倉庫的程式碼,這樣就可以知道有哪些程式碼有衝突,如果有衝突的話就會像底下這張照片一樣
簡單總結一下
指令 | 說明 |
---|---|
git init | 初始化,在本地端建立一個 empty Repository |
git add | 將工作區的檔案推送到暫存區 |
git status | 檢查本地端檔案修改以及在暫存區的狀態 |
git restore --staged | 從本地倉庫暫存區中的檔案回推到工作區 |
git commit -m | 提交檔案異動的摘要說明 |
git log | 查看commit 記錄 |
git reset | 回推到不同階段,皆會改變commit紀錄,reset與其他回推功能皆要慎用 |
reset有三種參數能夠設定
reset 參數 | 說明 |
---|---|
git reset --soft | 僅拆掉 commit(將暫存區檔案回推到工作區) |
git reset --mixed | 拆掉 commit 及 add(將暫存區與工作區的檔案回推但是並不會捨棄檔案的修改),git reset預設參數 |
git reset --hard | 拆掉 commit, add 及 Modified(將暫存區與工作區的檔案回推且會捨棄檔案的修改) |
分支的操作
分支的操作 | 說明 |
---|---|
git branch | 正常能夠新增分支,-D能夠刪除分支。 |
git switch | 切換分支 |
git check -b <remote/branch name> | 切換分支,若分支不存在則新增分支,要切換到遠端不同分支的檔案時可以使用 |
最後是遠端倉庫的相關操作
指令 | 說明 |
---|---|
git remote add | 新增遠端倉庫 |
git remote -v | 顯示遠端倉庫列表 |
git fetch | 遠端倉庫分支的紀錄同步到本地端 |
git pull | 同步遠端分支並合併。pull = fetch + merge |
git push | 將本地倉庫的檔案傳送到遠端倉庫 |
最後整個流程上大致上如下圖,基本上在第一次從遠端複製下載到本地的時候我們會先用clone,爾後發生差異和衝突時我們才會使用git pull來同步遠端的程式碼,查看程式碼的衝突,解決後並重新將重新發到暫存、本地倉庫、遠端倉庫。