Git 在您剛開始使用時可能會感到令人生畏。我們大多數人只會使用基本指令:git add
、git commit
和 git push
,老實說,這樣做是有效的……直到不再有效。在某個時候,您會遇到阻礙——一個纏結的歷史、一個損壞的分支,或者一個您無法追尋的錯誤。
這時,這 10 個 Git 指令將成為救星。
1. git reflog
曾經犯過一個如此糟糕的錯誤,希望能回到過去嗎?git reflog 就是您不知道擁有的時間機器。
它的功能:
它會記錄您在儲存庫中所做的每一件事情——甚至是您以為已經遺失的提交。
何時使用:
指令:
git reflog
2. git cherry-pick
想像一下:在另一個分支上有一個完美的提交,而您現在需要它,但又不想合併整個分支。這就是 git cherry-pick
的用途。
它的功能:
它允許您從一個分支選取特定的提交並將其應用到另一個分支。
何時使用:
main
中獲取來自 feature-branch
的錯誤修復,而不合併整個分支。指令:
git cherry-pick <commit-hash>
3. git bisect
正在除錯突然出現的錯誤?與其手動檢查每個提交,不如讓 Git 為您進行偵探工作。
它的功能:
在您的提交歷史中進行二分搜尋,以找到導入錯誤的確切提交。
何時使用:
指令:
git bisect start git bisect bad # 將當前提交標記為壞的 git bisect good <commit-hash> # 將已知的好提交標記為好的
Git 將不斷縮小提交範圍,直到找出罪魁禍首。
4. git stash pop
您一定有過這種情況——正在編碼中途時來了一個重要的錯誤報告。您需要切換分支,但又不想失去您的工作。
它的功能:
為什麼用 pop?
git stash
可以保存您的工作,但 git stash pop
可以恢復它並從暫存列表中刪除,保持整潔。
指令:
git stash pop
5. git reset --soft
曾經做了一個提交但意識到您還沒有準備好?也許您忘記把它與之前的提交合併?
它的功能:
將您的提交移回暫存區,但不會丟失更改。
何時使用:
指令:
git reset --soft HEAD~1
6. git blame
是的,這個名字聽起來有點指責,但它並不是在指責別人(或者也許它是)。
它的功能:
顯示每一行在文件中的最後修改者。
何時使用:
指令:
git blame <file>
7. git log --oneline --graph
查看一個具有多個分支的儲存庫可能會感到不知所措。這條指令為您的專案提供了一個鳥瞰圖。
它的功能:
以簡單且視覺化的方式顯示您的提交歷史。
何時使用:
指令:
git log --oneline --graph --all
8. git clean -f
有時候,您的工作目錄會變得雜亂不堪——未追蹤的文件到處攏積。git clean
就像是為您的儲存庫進行一次春季大掃除。
它的功能:
從工作目錄中移除未追蹤的文件。
何時使用:
指令:
git clean -f
9. git rebase -i
互動式 rebase 是整理混亂的提交歷史的魔法棒。
它的功能:
讓您在 rebase 中壓縮、編輯或刪除提交。
何時使用:
指令:
git rebase -i HEAD~<number-of-commits>
專業提示:在公共分支上謹慎使用,以避免衝突。
10. git diff --staged
在提交之前,能夠準確地查看已暫存的內容不是很好嗎?這就是 git diff --staged
的作用。
它的功能:
顯示您的暫存區與上一提交之間的變更。
何時使用:
指令:
git diff --staged
這些指令中,哪一個對您來說是新的呢?或者您是否有一個未被列出的少被人知道的最愛?讓我們在評論中聽聽吧!
原文出處:https://dev.to/balrajola/10-git-commands-youll-wish-you-knew-earlier-eha