iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Software Development

燃燒大三的成果發表系列 第 29

燃燒大三的成果發表第二十九天 - git(五)

  • 分享至 

  • xImage
  •  

昨天我們介紹了如何回推,今天再來介紹其他的

  1. 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

  2. 遠端倉庫的操作,對於之前介紹的多半是本地的操作,一開始的起手式也是先介紹在本地新建分支後push,但是其實我們可以透過git clone直接從遠端複製下載到本地

    接著我使用git fetch同步遠端倉庫的紀錄

    然後從遠端倉庫,新增一個master分支並切換

  3. 有時候我們本地倉庫與遠端倉庫會有衝突,我們就可以使用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來同步遠端的程式碼,查看程式碼的衝突,解決後並重新將重新發到暫存、本地倉庫、遠端倉庫。


上一篇
燃燒大三的成果發表第二十八天 - git(四)
下一篇
燃燒大三的成果發表第三十天 - 完賽心得
系列文
燃燒大三的成果發表30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言