每個 QA 工程師都應(yīng)該知道的 20 個 Git 基本命令
在本文中,我們將討論 Git。Git 是一個版本控制系統(tǒng),一個跟蹤代碼更改并與他人共享這些更改的工具。本文列出了 QA 人員/開發(fā)人員應(yīng)該了解的最基本的命令,以便在高層次上掌握 GitHub 存儲庫的管理。再次復(fù)習(xí)基本的日常命令對初學(xué)者和有經(jīng)驗的用戶都有用。
在 Git 中設(shè)置用戶名
需要用戶名才能將提交綁定到您的名字。這與用于登錄 GitHub 配置文件的 GitHub 帳戶用戶名不同。git config您可以使用命令設(shè)置或更改用戶名。新名稱將自動顯示在通過命令行推送的后續(xù)提交中。
您還可以使用命令更改與您的 git 提交關(guān)聯(lián)的電子郵件地址git config。新的電子郵件地址將自動顯示在所有通過命令行提交到 GitHub 的未來提交中。
憑據(jù)緩存
可以使用帶有標志的config選項來緩存憑據(jù)。--global這有助于您在創(chuàng)建新提交時無需手動輸入用戶名和密碼。有助于將密碼臨時存儲在內(nèi)存中。
設(shè)置存儲庫
創(chuàng)建一個空的 Git 存儲庫或重新初始化一個現(xiàn)有的。執(zhí)行g(shù)it init會在當前工作目錄中創(chuàng)建一個 .git 子目錄,其中包含新存儲庫所有必需的 Git 元數(shù)據(jù)。此元數(shù)據(jù)包括對象、引用和模板文件的子目錄。
將文件添加到暫存區(qū)
該git add命令將工作目錄中的新文件或更改的文件添加到 Git 暫存區(qū)。
添加somefile:
添加所有文件:
回購狀態(tài)檢查
該git status命令顯示工作目錄和暫存區(qū)的狀態(tài)。它可以讓您查看哪些更改已暫存,哪些尚未暫存,以及哪些文件未被 Git 跟蹤。
拍攝變化快照
記錄對存儲庫的更改。此命令用于將更改保存到本地存儲庫。它可以與一些 git 鍵一起使用,例如:
- - m向您的提交添加一條消息
- - a將所有文件暫存到您的提交
- --amend使用任何當前暫存的更改或新的提交消息重寫最后一次提交
檢查 Git 歷史
顯示提交日志。此外,作為 Git 用戶,您可以通過向git log命令添加一些鍵以更高級的方式使用該git log命令。
使用oneline標志將每個提交顯示為一行:
shortlog按作者對每個提交進行分組并顯示每個提交消息的第一行:
該--graph選項繪制一個 ASCII 圖,表示提交歷史的分支結(jié)構(gòu)。這通常–oneline與–decorate命令結(jié)合使用,以便更容易地查看哪個提交屬于哪個分支:
您還可以限制提交日志輸出的次數(shù):
支持過濾 git 歷史記錄,例如按日期、作者、文件或消息:
顯示變化
git diff顯示提交、提交和工作樹之間的變化。
指定文件名以顯示其文件正在進行的更改:
顯示分支 master 和 develop 之間的變化:
文件重命名
您可以使用命令重命名文件或文件夾mv。您應(yīng)該指定源路徑和目標路徑。源是實際文件或文件夾,目標是現(xiàn)有文件夾。
分支特征
一個分支代表一條獨立的開發(fā)線。分支作為編輯/暫存/提交過程的抽象。該git branch命令允許您創(chuàng)建、列出、重命名和刪除分支。
要創(chuàng)建一個新分支:
您也可以將一些鍵傳遞給git branch命令:
- git branch -m <branch>重命名當前分支
- git branch -d <branch>刪除本地分支
- git push origin --delete <branch>將更改推送到遠程通知刪除分支到遠程原始存儲庫(需要與上一個命令一起使用)
- git branch -a顯示所有分支的列表
撤消文件更改
git restore命令有助于取消暫存甚至丟棄未提交的本地更改。該命令可用于撤消您之前添加的 git add 和 unstage 更改的影響。它還可用于丟棄文件中的本地更改,從而恢復(fù)其上次提交的狀態(tài)。
使用遠程命令
git remote管理一組被跟蹤的遠程存儲庫。
顯示所有遠程連接的列表:
要更改遠程 URL:
要重命名當前連接,可以使用下一個命令:
要刪除連接:
將更改保存到剪貼板
git stash將更改隱藏在臟工作目錄中。此命令獲取您未提交的更改(暫存的和未暫存的)并將它們保存起來以備后用。
可以將幾個鍵添加到命令中:
- git stash隱藏跟蹤文件
- git stash -u隱藏未跟蹤的文件
- git stash -a隱藏所有文件(包括忽略的文件)
該stash命令將您的更改保存到某種更改列表中,您可以使用以下方法訪問它:
此外,您可以向您的藏匿處添加一條消息,使用git stash save "message"命令對其進行注釋:
此外,它還支持查看存儲差異:
要應(yīng)用存儲保存的更改(它將應(yīng)用存儲列表中的最后一個存儲):
并能夠清除所有藏匿處:
標記
git tag標記存儲庫歷史記錄中的特定點。
要訪問標簽列表,請使用git tag -l. 要刪除,只需傳遞特定的 key git tag -d v1.0。列出遠程標簽:git ls-remote --tags. 要重新標記(現(xiàn)有標記的重命名),只需使用 force key: 發(fā)送git tag -f v1 v1.1,在這種情況下我們v1使用 new重命名v.1.1。
獲取最新的遠程更改
要獲取本地的最新更改,有兩個 git 命令:git pull和git fetch. 它們之間的主要區(qū)別在于git fetch將下載遠程內(nèi)容但不會更新本地存儲庫的工作狀態(tài),從而使您當前的工作保持不變。我個人使用git fetch帶鍵的命令--prune,這是清理過時分支的最佳實用程序。在獲取之前,刪除遙控器上不再存在的任何遠程跟蹤引用。git pull相反,將為活動的本地分支下載遠程內(nèi)容,并立即執(zhí)行合并到您的文件。也git pull可以與 rebase 公共鍵一起使用:git pull -r拉和變基。
撤消更改并恢復(fù)丟失的提交
git cherry-pick用于此目的。git 中的 Cherry-picking 意味著您從一個分支中選擇一個提交并將其應(yīng)用到另一個分支。通常在開發(fā)團隊中,這用于發(fā)布階段的快速錯誤修復(fù)(修補程序),或者當需要應(yīng)用未合并的提交時。要使用此命令,您應(yīng)該通過提交 sha。
撤消上次提交
在 git 中,有兩種方法可以撤消最后的更改:git revert和git reset. git revert命令創(chuàng)建一個新的提交,撤消先前提交的更改。此命令向項目添加新的歷史記錄。git reset用于撤消工作目錄中尚未提交的更改。重置命令可以與參數(shù)--soft, --mixed,一起使用--hard。默認情況下,Git 使用 reset with --mixedkey (uncommit + unstage changes)。開發(fā)人員經(jīng)常使用的是--hard選項(uncommit + unstage + delete changes)。當通過--hard提交歷史 ref 指針時,將更新為指定的提交。--soft如果您想取消提交更改,這是一種更準確的方法,在這種情況下,更改將暫存。
例如,要在 git 上將文件硬重置為 HEAD:
在提交或分支之間切換
git checkout使用命令。您可以在提交和分支之間切換,只需將 branch_name/commit_sha 傳遞給git checkout命令即可。此外,您可以使用 checkout 命令創(chuàng)建新的不存在的分支,它將創(chuàng)建新分支并切換到它:
要檢查一些提交,其中 5939515 是提交 sha:
找到破壞某些東西的提交
git bisect是你的朋友——Git 中一個非常強大的命令,它有很大幫助。它用于將兩個提交指向邊緣情況,然后重新傳遞這兩個點之間的所有提交歷史記錄(如果存在某些特定的失敗,則逐個提交標記)。要使用,首先,您應(yīng)該開始使用工具進行初始化:
然后我們應(yīng)該將兩個邊緣情況標記為壞點和好點:
通過提交你可以很容易地找到錯誤的提交,可能引入了一些錯誤/錯誤。
顯示誰對所選文件進行了更改
git blame命令用于此。主要目的是顯示所選文件的日志,顯示誰以及何時對此文件進行了更改。
這將顯示對該文件所做的提交、作者、日期和提交消息的列表。該命令可用于傳遞一些鍵,例如-e在日志中顯示作者的電子郵件地址,-L 1-7以限制和僅顯示 7 行輸出。git blame和之間的主要區(qū)別在于git log,blame可以告訴您最后修改每行代碼的人是誰以及何時。