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