了解 Git 和 GitHub 對於任何開發人員都至關重要,因為它們可以提供有效的版本控制和程式碼管理。熟練這些工具可以讓您脫穎而出並提高您的工作效率。在這篇文章中,我們將探索一組 Git 指令來啟動您的軟體開發之旅。

Git 詞彙

在深入研究這些命令之前,讓我們先熟悉一些 Git 術語。這種理解不僅可以幫助你更好地掌握 Git,還可以為你的整體理解打下基礎。

儲存庫

儲存庫或儲存庫充當儲存空間,用於儲存專案的原始程式碼及其版本歷史記錄。

工作目錄

工作目錄是您目前對專案進行更改的位置,其中存放您正在處理的文件。

staging

暫存充當儲存庫和工作目錄之間的中間區域。您可以在其中新增更改,然後將其提交到主儲存庫。

commit

提交是對階段提出的更改的快照,由唯一辨識碼(SHA-1 雜湊)標識並附有提交訊息。

分支

分支代表儲存庫的並行版本,有助於獨立地處理不同的功能或錯誤修復。

合併

合併涉及將建議的變更合併到主儲存庫中,通常用於將新功能整合到主專案中。

拉取是指從任何遠端儲存庫取得程式碼並將其合併到本機儲存庫(即工作目錄)。

推送涉及將本機變更傳送到任何儲存庫的任何遠端分支。

複製

克隆是建立主儲存庫的本機副本、建立有效拉取和推送連線的過程。

pull

取得會將變更從任何遠端儲存庫下載到本機儲存庫,而不直接將它們合併到本機儲存庫中。它對於在合併之前檢查更改很有用。

fork

Forking 在您的 GitHub 帳戶上建立其他人儲存庫的個人副本,從而可以在不影響原始儲存庫的情況下進行變更。

衝突

當兩個或多個分支在程式碼的同一部分發生變更時,就會出現衝突,而 Git 無法直接合併它們。

head

在 Git 中,HEAD 是指標/引用,始終指向目前分支中的最新提交。當您進行新的提交時,HEAD 會移動到提交的頂部。

 

現在,讓我們一一探討 10 個 Git 指令。

開始迷因

1 - 一起新增和提交文件

傳統上,在 Git 中,我們使用「git add *」指令來暫存所有已修改的檔案以供後續提交。隨後,我們使用 git commit -m "commitMessage" 指令來提交這些變更。然而,存在一個更簡化的命令,只需一步即可完成這兩項任務:

git commit -am "commitMessage"

「-am」標誌允許我們暫存這些變更並在一次有效的操作中提交它們。

2 - 建立並切換到 Git 分支

與前面的場景類似,另一個命令組合了兩個命令的功能。不要使用單獨的命令,而是使用 gitbranchbranchName 建立分支並使用 gitcheckoutbranchName 切換到它。使用以下命令一步即可完成這兩項任務:

git checkout -b branchName

帶有“git checkout”命令的“-b”標誌允許我們建立一個新分支並立即切換到它。

3 - 刪除 Git 分支

若要刪除 Git 中的分支,請使用 gitbranch-dgitbranch-D 指令。 “-d”選項用於安全刪除,僅刪除完全合併到目前分支的分支。 “-D”選項用於強制刪除,無論是否完全合併。以下是命令:

安全刪除(檢查合併):

git branch -d branchName

強制刪除(不檢查合併):

git branch -D branchName

4 - 重新命名 Git 分支

若要重新命名分支,請使用「gitbranch-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 push --force」強制推送變更來更新遠端分支。標準的「git push」操作會將新的提交附加到遠端儲存庫,而不是修改最後的提交。

8 - 隱藏更改

假設您正在處理兩個不同的分支A 和B。在分支A 中進行更改時,您的團隊要求您修復分支B 中的錯誤。當您嘗試使用「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^

這是當您使用“git reset HEAD^”而不指定“--soft”或“--hard”時的預設行為。它取消最後一次提交並從暫存區域中刪除其變更。但是,它將這些變更保留在您的工作目錄中。當您想要取消提交最後一次提交並從頭開始進行更改,同時在重新提交之前將更改保留在工作目錄中時,這會很有幫助。

硬重置

git reset --hard HEAD^

現在,我們來談談「git reset --hard HEAD^」。它會完全刪除 Git 歷史記錄中的最後一次提交以及所有相關變更。當您使用“--hard”標誌時,就沒有回頭路了。因此,當您想永久放棄最後一次提交及其所有變更時,請務必謹慎使用此選項。

感謝您的閱讀。我希望這篇文章對您有所幫助,並且您學到了一些新命令。如果您還有任何疑問,請隨時與我們聯繫。請隨意分享您在日常生活中經常使用的任何 Git 命令,您會發現它非常方便。 :)

與我聯繫

LinkedIn

X(以前的 Twitter)


原文出處:https://dev.to/mukeshkuiry/10-must-know-git-commands-for-software-engineers-3733


共有 0 則留言