2024-08-25|閱讀時間 ‧ 約 25 分鐘

新手村導讀 - 7: Git(3)

經過前兩篇比較文書而廣泛的介紹,這次來介紹一下我自己比較常用的幾個指令吧~

泛用基礎的

git pullgit push 這種相對基礎的指令,也是蠻常使用的。

建立並切換新分支

git checkout -b 新分支名稱

可以直接在目前的 Commit 點建立新的分支,並且直接切換到新的分支。如此一來不用分成兩個指令去做建立+切換兩件事情。

分支合併

git merge --no-ff origin/分支名稱

這個指令可以將其他的分支合併到目前所在的分支。

--no-ff:簡單來說是將合併的點移入這個分支,比較詳細的內容可以參考第一篇文章。

origin:避免將遠端分支拉下來後沒有更新,因此用遠端的內容合併可以避免沒有更新到新的內容。

重製修改

git reset --hard 分支名稱或是Hash值

可以用這個指令去調整修改的內容。用 --hard 可以直接忽略從指定的點上後面的所有修改,而用 --soft 可以將指定的點後面的修改退回 Stage 階段,讓你選擇這些修改的去留。

另外,也可以搭配 git fetch --all 做使用,先將分支內容 fetch 下來之後,再用 reset --hard 去將本地的該分支變得跟遠端相同。

確認修改紀錄

git log --oneline

可以用這個指令去顯示此分支的修改紀錄,由於基礎的 git log 指令會顯示的紀錄稍嫌冗長,因此加上 --oneline 讓 Hash 以及修改紀錄濃縮到一行。

確認目前進度

git status

由於在 rebase 跟 merge 在處理時可能會需要解衝突導致處理到昏天暗地(?),因此中間可以隨時用這個指令去確認現在處理到哪個階段了。

整理 Commit 點

git rebase -i Hash值

用這個指令可以整理這個指定 Hash 值以後的 Commit 點(不包含此 Commit 點),可以重新排序、修改修改訊息或是濃縮 Commit 點。下指令開啟 vim 編輯器後,會看到每個點的預設類別為 pick,以下是其他常用的方式:

濃縮:將 pick 修改成 s ,即可將這個點跟前一個點進行濃縮。

修改訊息:將 pick 修改成 reword

排序:直接複製貼上即可調整,有時會產生前後衝突。

刪除:直接將這個點刪除即可。

修改 Commit Message

git commit --amend

這個指令可以修改前一個的訊息內容。

git rebase -i HEAD~3

可以直接調整好幾次 Commit 點以前的內容。

Git Message Reference

在我們打上修改訊息時,訊息內容可以直接包含 Hash 值或是 Issue 的編號,這樣就可以直接在建立 Commit 點時創建超連結,例如:

git commit -m "Fix bug in feature X (see 1a2b3c4d)"

最後推薦給大家一個好用的小工具 -- tig,這個工具可以幫你可視化目前的 git 圖,十分方便喔!

參考資料:

  1. 何時該用 git merge --no-ff?. 先說結論:若沒啥好奇心或 branch 的潔癖的話,可以跳過這篇。可能… | by fcamel | Medium
  2. 技术|如何使用 Tig 浏览 Git 日志 (linux.cn)
  3. 經驗甘苦談
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.