揭秘Git高手的10個秘密武器:讓你的工作效率飆升!
Git和GitHub是每個軟體工程師都必須瞭解的最基本的工具。它們是開發人員日常工作不可或缺的一部分,每天都要與之互動。
精通Git不僅能簡化你的日常操作,還能顯著提高生產力。在這篇文章中,我們將探討一組能夠極大提升生產力的命令。
隨著對這些命令越來越熟練的運用,會節省大量的時間,成為一個更高效的軟體工程師。
Git 術語
在逐一深入探討Git命令之前,我們先來熟悉一些基本的Git術語。這不僅有助於更好地理解這些命令,而且在本文後續的部分使用這些術語時,也能避免混淆。
HEAD
在Git中,HEAD
是一個特殊的指標/引用,始終指向當前分支中的最新提交。當你進行新的提交時,HEAD
會向前移動,指向那個新的提交。例如,如果你處於main
分支,並進行了新的提交,HEAD
現在將指向那個新的提交,表明它是main
分支中最新的提交。
^(尖角符號):
在Git中,^
符號用作導航穿越專案歷史時間線的手段。當你使用HEAD^
時,它引用的是你當前提交之前的提交。如果你在^
後面追加一個數字,比如HEAD^2
,它指的是當前提交之前的第二個提交。簡而言之,^
符號允許你在專案的歷史中向後遍歷,而數字值讓你能夠精確地確定你希望回退的提交數量。
暫存(Staging)
暫存是你組裝下一個提交中想要包含的更改的地方。暫存讓你能夠仔細策劃你的提交,使其易於審查、組織和完善你的修改。有了暫存,你可以控制哪些更改包含在你的提交中。要暫存更改,你使用git add
命令,這類似於宣告“我希望這些更改成為我的下一個提交的一部分”。
現在,讓我們逐一探索這10個Git命令。
1、同時新增和提交檔案
通常,在Git中,我們使用git add *
命令來暫存所有已修改的檔案以備後續提交。之後,使用git commit -m "commitMessage"
命令來提交這些更改。然而,存在一個更加高效的命令可以一步完成這兩個任務:
git commit -am "commitMessage"
-am
標誌不僅允許我們暫存這些更改,而且還能在一個高效的操作中提交它們。
2、建立並切換到一個Git分支
與前面的場景類似,另一個命令也結合了兩個命令的功能。不是使用兩個分開的命令,一個是git branch branchName
來建立分支,然後是git checkout branchName
來切換到它。
可以使用以下命令在一個步驟中完成這兩個任務:
git checkout -b branchName
-b
標誌和git checkout
命令一起使用,不僅允許我們建立一個新的分支,還能立即切換到它。
3、刪除一個Git分支
要在Git中刪除一個分支,可以使用git branch -d
或者git branch -D
命令。-d
選項是安全刪除,它只會在該分支已經完全合併到當前分支時才刪除它。-D
選項是強制刪除,無論該分支是否已經完全合併都會刪除它。以下是命令。
安全刪除(檢查合併):
git branch -d branchName
強制刪除(不檢查合併):
git branch -D branchName
4、重新命名一個Git分支
要重新命名一個分支,可以使用git branch -m
命令,後面跟著當前分支名和新的期望分支名。例如,如果你想把一個叫做oldBranch的分支重新命名為newBranch,執行以下命令:
git branch -m oldBranch newBranch
然而,如果你想重新命名現在正工作的當前分支,而不顯式指定舊名稱,可以使用以下命令:
git branch -m newBranchName
這裡,你不需要指定舊的分支名,因為Git會假設你想將當前分支重新命名為新的名稱。
5、取消暫存特定檔案
有時,可能想要從暫存區中移除特定的檔案,以便在提交前進行額外的修改。使用:
git reset filename
這將取消該檔案的暫存狀態,同時保持你的更改不變。
6、丟棄對特定檔案的更改
如果你想完全放棄對特定檔案所作的更改,並將其恢復到最後一次提交的狀態,使用:
git checkout -- filename
這個命令確保檔案回到它之前的狀態,撤銷任何最近的修改。它是一種在不影響其他更改的情況下重新開始編輯特定檔案的有用方式。
7、更新你的最後一次 Git 提交
想象一下,你剛剛在Git倉庫中做了一個提交,但隨後你意識到你忘記在那次提交中包含一個更改,或者你可能想要修正提交資訊本身。你不想為這個小改動建立一個全新的提交。相反,你想要把它新增到之前的提交中。這時可以使用的命令:
git commit --amend -m 'message'
這個命令修改了你最近做的提交。它將任何已暫存的更改(你已經用git add
新增的)和你的新評論結合起來建立一個更新的提交。
需要記住的一點是,如果你已經將提交推送到遠端倉庫,你需要使用 git push --force
來強制推送更改以更新遠端分支。因為標準的git push
操作是將一個新的提交追加到你的遠端倉庫,而不是修改最後的提交。
8、暫存更改
想象你正在同時在兩個不同的分支上工作,A和B。當你在分支A上做更改時,你的團隊要求你在分支B中修復一個bug。當你嘗試使用git checkout B
切換到分支B時,Git阻止了這個操作,並顯示了一個錯誤:我們可以按照錯誤訊息的建議提交更改。但提交更像是一個固定的時間點,並不是一個正在進行中的工作。這時可以應用錯誤訊息的第二個建議並使用暫存功能的地方。我們可以使用這個命令來暫存更改:
git stash
git stash
臨時儲存你還沒準備好提交的更改,允許你切換分支或者在不提交未完成工作的情況下進行其他任務。
要在我們的分支中重新應用暫存的更改,你可以使用git stash apply
或者git stash pop
。這兩個命令都恢復最新暫存的更改。應用暫存只是恢復更改,而彈出暫存則是恢復更改並將其從暫存中移除。
9、還原Git提交
想象你正在一個Git專案上工作,發現一個特定的提交引入了一些不希望的更改。你需要撤銷這些更改,但又不想從歷史記錄中擦除該提交。你可以使用以下命令來撤銷那個特定的提交:
git revert commitHash
這是一種安全且非破壞性的方式來糾正你的專案中的錯誤或不想要的修改。例如,假設你有一系列的提交:
提交 A 提交 B(這裡引入了不希望的更改) 提交 C 提交 D
為了逆轉提交B的影響,執行如下命令:
git revert commitHashOfB
Git將會建立一個新的提交,我們稱之為提交E,它將抵消提交B引入的更改。提交E成為你分支中的最新提交,專案現在反映的狀態就像提交B從未發生過一樣。
如果你想知道如何檢索提交雜湊值,使用git reflog
是直接的。在下面的截圖中,高亮的部分代表你可以輕鬆複製的提交雜湊值:
10、重置Git提交
假設你對專案進行了提交。然而,在檢查後,你意識到需要調整或完全撤銷最後一次提交。對於這種情況,Git提供了這些強大的命令。
軟重置:
git reset --soft HEAD^
當使用git reset --soft HEAD^
時,執行一個軟重置。這個命令允許回溯到最後一次提交,同時保留所有更改在暫存區中。簡單來說,可以使用這個命令輕鬆地撤銷提交,同時保留你的程式碼更改。當需要修改最後的提交,也許是在再次提交之前新增更多更改時,這很方便。
混合重置:
git reset --mixed HEAD^
這是當你不指定--soft
或--hard
時使用git reset HEAD^
的預設行為。它撤銷了最後的提交,並從暫存區中移除了它的更改。然而,它會保留這些更改在工作目錄中。當你想要撤銷最後的提交併從頭開始進行更改,同時在重新提交之前保持更改在工作目錄中時,這很有幫助。
硬重置:
git reset --hard HEAD^
現在,來看看git reset --hard HEAD^
。它會徹底抹除最後的提交以及所有相關更改從你的Git歷史記錄中。當你使用--hard
標誌時,就沒有回頭路了。所以在你想要永久性地丟棄最後的提交及其所有更改時,一定要非常謹慎地使用。
小結
希望這篇文章對你有所幫助,可以學到了一些新的Git命令。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024923/viewspace-2998109/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 工作效率飆升的秘訣!7種用ChatGPT的方法你值得擁有!ChatGPT
- 讓你月薪飆升的祕籍:Java效能調優的9個實用技巧Java
- 揭秘ChatGPT:改變你聊天方式的秘密武器ChatGPT
- 用好 ChatGPT,讓你工作效率提升10倍ChatGPT
- MySQL寫sql的21個好習慣,讓你的工作效率翻倍MySql
- 5個簡單實用的MacOS技巧讓你的Mac工作效率翻倍Mac
- 征服Excel VBA:讓你工作效率倍增的239個實用技巧Excel
- sketch外掛大放送,讓你的工作效率提高10倍
- 10個迅速提升你 Git 水平的提示Git
- 10 個迅速提升你 Git 水平的提示Git
- VS Code:讓你工作效率翻倍的23個外掛和23個編輯技巧
- 10個讓你繼續幹IT的理由
- 菜鳥變高手:Windows XP中的秘密武器(轉)Windows
- 巧用FMEA,讓IT專案成功率飆升!
- 是什麼優化讓 .NET Core 效能飆升?優化
- 分享5款讓你提升工作效率的小工具
- 4個Excel技巧,提高你的工作效率!Excel
- 文件處理效能飆升!浩鯨科技“文件大模型”核心技術揭秘!大模型
- 你可能不太會用的10個Git命令Git
- UNIX 高手的 10 個習慣
- 約束你的git操作,讓你生無可戀。Git
- 6款輔助高效運營的工具,讓你的工作效率翻倍
- 不當IT民工 讓你拿高薪的10個技能高薪
- 30分鐘讓你掌握Git的黑魔法Git
- 好用API介面大揭秘:分享高效能開發的秘密武器API
- 一個讓人瞠目結舌的電腦高手!
- 5款值得推薦的工具和軟體,讓你的工作效率翻倍
- Unix 高手的另外 10 個習慣
- 揭秘iOS 10刪除原生應用:蘋果讓你秒變傻天真iOS蘋果
- SQLPro Studio,讓你的Mac成為資料庫管理的高手!SQLMac資料庫
- cpu飆升排查命令
- 分享幾個組合Git+Shell提升工作效率的小技巧Git
- 半小時讓你成為EXCEL高手Excel
- 能讓你受益匪淺的10個css使用技巧CSS
- 10個步驟讓你成為高效的Web開發者Web
- 10個說話技巧讓你的語言有魅力
- 兩條命令讓你的git自動變基Git
- IDC生存現狀揭秘,你不得不get的升級指南!