為初學者準備的 32 個 Git 命令備忘單

已發表: 2022-09-23

GIT 命令備忘單是開發人員的方便參考,包含 git 項目最常用的命令。

什麼是 GIT?

GIT 是一個開源存儲庫,用戶可以在其中放置他們的文件,包括代碼、zip、文本或整個項目。

它具有多個功能,如協作、版本控制、流程控制等。與其他版本控制系統相比,GIT 更有效地存儲文件並提供更好的完整性。 Git 是一個命令行工具。

什麼是 GitHub?

憑藉其簡潔的用戶界面,GitHub 作為開發人員的中心,已成為使用最廣泛的版本控制系統,任何人都可以在任何地方訪問。

Git 工作流程

Git 有不同的工作流程,每個項目都應該有一個基於其需求的工作流程。 Git 工作流只不過是一個輕量級的、基於分支的工作流,它可以幫助定期部署項目的團隊。

例如,分支 Git 工作流會創建存儲庫的本地副本。 因此,每個開發人員都有一個本地工作區和一個中央存儲庫。 當涉及多個開發人員時,這種工作流程很好,並允許開發人員在對主存儲庫進行更改之前就分叉副本進行協作。

為什麼我們需要 Git?

由於 Git 是一個版本控制系統,因此開發人員會不斷地使用它來保存他們的更改、讓其他人可以看到它們、將他們的更改與其他人合併等等。

對於 Git 存儲庫的任何更改,開發人員需要知道正確的命令才能執行正確的操作。 以下是重要且常用的 Git 命令的列表:

常用 Git 命令

混帳添加

將指定的文件添加到暫存中

 git add <file> -- add a specific file git add * -- add all the files

git存檔

創建提交、分支和樹的存檔,並將多個文件合併為一個。 您可以在需要時通過提取文件來檢索內容

git archive HEAD — 從 repo 的 HEAD ref 創建一個檔案

git archive output = '.tar' — 將歸檔文件存儲在給定位置

git archive --format=tar.gz — 指定歸檔文件的格式,如 tar、zip、tar.gz

git 分支

列出存儲庫中的所有分支。 如果指定了分支,將創建一個具有該名稱的新分支。 要刪除分支,請使用帶有分支名稱的 -d 選項。 要重命名當前分支,請使用 -m。

git branch — 列出所有分支

git branch <branch_name > — 創建一個名為“branch_name”的新分支,但不簽出新分支。

git branch -d <branch_name> - 刪除分支,如果有任何未合併的更改,則阻止刪除

git branch -D <branch_name> — 強制刪除分支,即使存在未合併的更改

git branch -m <branch2> - 重命名當前分支

git cat 文件

顯示存儲庫對象的內容或大小/類型信息

git cat-file <object> — 顯示對象內容

git cat-file -t <object> — 顯示對象的類型

git cat-file -s <object> — 顯示對象的大小

git cat-file -p <object> — 以漂亮的方式打印對象的類型

git cat-file -e <object> — 如果對象的格式無效或不存在,則在 stderr 上顯示錯誤

git cat-file <type> <object> — 顯示對象的原始內容

git結帳

要在存儲庫的不同分支之間切換,請小心使用它,因為它沒有“撤消”功能。

git checkout <branch_name> — 簽出指定的分支

git checkout -b <branch_name> — 創建一個新分支並切換到這個分支

例如:

 C:\Users\geekflare>git checkout -b development_branch Switched to a new branch 'development_branch'

清理乾淨

清理工作主管。 提交的文件不會被刪除

git clean -n — 列出將被刪除的文件

git clean -f - 刪除文件

git 克隆

將現有 repo 的副本創建到新目錄中。 用於獲取中央存儲庫的開發副本。

git clone <central_repo> <new_dir> — 將中央倉庫的副本創建到新目錄中

例如:

 C:\Users\geek>git clone geekflare master Cloning into 'master'… done.


git clone -branch <branch> <repo> — 從提到的存儲庫中克隆一個分支

git 提交

將更改保存到暫存環境中,以便其他人可以看到。

git commit — 提交對暫存區的更改

git commit -m <useful_msg> — 在提交時給出一條消息以突出顯示所做的更改

git commit -a — 直接提交更改,無需暫存

假設您在工作目錄中添加了一個名為 samplefile.txt 的文件,並且想要提交該文件。 給出上述命令後,您將獲得輸出:

 Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. On branch master Initial commit Changes to be committed: new file: samplefile.txt

發送消息後,將提交更改:

 C:\Users\geekflare>git commit -m 'samplemsg' [integration_branch (root-commit) ed52dd0] 'samplemsg' 1 files changed, 24 insertions(+) create mode 100644 samplefile.txt

混帳配置

指定要寫入屬性值的配置級別。 “本地”級別是默認值(未指定任何內容時)。

git config –local — 將配置保存在 repo 的 .git 目錄中

git config –global — 將配置保存在用戶的主目錄中

git config –system — 包含所有用戶和存儲庫的配置,位於根目錄的 git config 文件中。

混帳差異

比較 git repo 中的更改,可以在 staging 之前、staging 時和 staging(提交)之後完成。

git diff — 跟踪尚未暫存的 repo 更改

git diff --staged — 跟踪暫存文件的更改(未提交)

git diff HEAD — 跟踪提交後的文件更改

git diff <commit1_id> <commit2_id> — 跟踪兩次提交之間的變化; 您可以使用 ' git log -p --follow --filename ' 找出 commit_ids

獲取

獲取分支或整個遠程存儲庫

git fetch <remote-url> — 從遠程倉庫 URL 獲取整個倉庫

git fetch <branch_url> <branchname> — 獲取特定分支

git fetch -all — 獲取遠程倉庫的所有分支

git fetch origin — 更新本地 repo 並將其與遠程 repo 中的新更改同步

git fsck

文件系統檢查命令檢查數據庫對象的有效性和連接性。 它檢查對象的 SHA-1ID 和它們建立的連接。 Fsck 對於恢復丟失的提交和文件很有用。

git fsck –full

混帳 gc

在當前存儲庫上運行垃圾收集並清理未使用的文件。

git gc

git grep

在存儲庫中搜索特定內容。 Git 提供了許多選項來以不同的方式進行搜索

git grep -i 'search_term' — 忽略大小寫搜索 [Man and man will be the same]

git grep -f <file_name> — 顯示特定文件的匹配模式

git grep -e 'search-term' — 使用 -e 進行模式匹配

git grep -E 'regexp|multiple_exp'搜索正則表達式,我們可以使用管道(OR)運算符搜索多個

git grep -n 'expr' — 匹配行的前綴行號

git grep -c 'expr' — 顯示匹配的行數,而不是每行

git ls-樹

從當前目錄列出樹對象的內容。

git ls -tree -d <path> — 只顯示指定的樹條目,不顯示子條目

git ls -tree -r — 遞歸到子樹

git ls -tree -l — 顯示文件(blob)對象的大小

git ls -tree --name-only — 只顯示文件名而不是長輸出

git ls -tree --full-name — 顯示完整路徑名,而不僅僅是相對於當前目錄的路徑

例子:

 C:\Users\geek>git ls-tree --full-tree -r HEAD 100644 blob e883e60087e84f1660a9673ccb86eb0adc4f004d samplefile.txt 100644 blob 1426dc6fbff0677a484b248983a8740ff30fbb80 sample_jsindex.js

混帳初始化

創建一個新的空白存儲庫。 這是您創建 git 項目時執行的第一個命令。

git init — 在工作目錄中創建一個 .git 存儲庫,

例如,要創建一個名為“geekflare”的新存儲庫,請提供以下命令:

 $ git init geekflare Initialized empty Git repository in C:/Users/geek/geekflare/.git/

git instaweb

通過瀏覽器瀏覽 git 存儲庫的用戶界面。 同樣使用 CGI 腳本 GitWeb。

git instaweb --httpd=webrick — 啟動服務器 (httpd) 並在頁面上打開 Web 瀏覽器。

要停止服務器,請使用帶有 –stop 選項的上述命令。

混帳日誌

記錄 git 存儲庫中的每個活動。

git log — 顯示最近的幾次提交

git log --oneline — 將輸出顯示為 SHA 的前 7 個字符和每行一個提交的提交消息

git log stat — 顯示有關修改文件的更多信息,例如添加/刪除的行數、更改的總記錄摘要、添加/刪除的行

git log --patch (or -p) — 顯示修改的文件、具體更改及其位置

git log --graph — 以圖表形式查看日誌結果

git log -<n> — 顯示最後 'n' 次提交

git log --after=<date/x days/yesterday> — 顯示指定日期之後的所有提交。 您可以使用--before顯示指定日期之前的提交

git log --author=<author_name> — 顯示特定作者(用戶)的提交。

git log --grep=<commit message> — 根據提交消息過濾提交

git 合併

將所有開發文件集成到一個分支中,合併兩個分支,並將多個提交合併到一個歷史記錄中。 如果發生衝突,合併將停止,並且 git 會顯示衝突文件。 解決衝突後,合併將繼續。

git checkout -b — 首先,檢出要合併的分支

git add <file>

git commit — 添加並提交文件

git checkout master

git merge — 將分支與 master 合併

git 修剪

刪除(修剪)從當前分支無法訪問的文件。 從分支中刪除未使用的文件是一個清理過程

git prune -n​​ — 不修剪,只顯示可以修剪的內容

git prune -v — 顯示 prune 執行的操作的輸出

git prune --progress — 顯示修剪的進度

git fetch --prune — 修剪所有過時的分支

git 拉

它從遠程服務器接收數據到工作存儲庫。 它使用遠程存儲庫中的所有最新文件更新本地(工作)分支。

git pull — 拉取遠程倉庫

git pull <repo URL> — 拉取一個特定的遠程分支

git 推送

將所有本地更改推送到遠程存儲庫。 這是一個與 pull 和 fetch 命令完全相反的上傳過程

git checkout master — 簽出具有最新更改的分支

git push origin master — 將更改推送到遠程倉庫

例子:

 C:\Users\geek>git checkout development_branch Switched to branch 'development_branch' C:\Users\geek>git push master development_branch Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 612 bytes | 204.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 To master [development_branch] development_branch -> development_branch

我們還可以使用命令git push --delete <branch>使用 push 刪除遠程分支。

例如:

 C:\Users\geek>git push master --delete development_branch To master [deleted] development_branch

git rebase

組合來自不同分支的多個提交以創建新的最終基本提交。 在合併所有更改之前很有用,可以一一提交來自不同分支的更改(線性)。

git rebase <branch name> — 將提交合併為一個最終基數

如果存在任何衝突,請解決它們並繼續 rebase:
git rebase --continue

要跳過任何更改:
git rebase --skip

遠程git

檢查遠程服務器的配置並允許遠程和本地之間的連接訪問。

git remote — 默認情況下,它返回 'origin',Git 給出的遠程服務器的默認名稱

git remote -v — 列出所有可用遠程連接的短名稱和 URL

git remote add <short name> <remote url> — 將遠程服務器顯式添加到可用連接中。 短名稱可用於 git 命令,而不是提供整個 URL。

git remote remove <remote url/short name> — 從存儲庫中刪除遠程服務器

git 重置

返回上一個提交,並丟棄該提交後所做的更改

git reset <hash of the commit> — 將 repo 恢復到指定的提交。 Git 將保留提交歷史記錄,因此您可以使用不同的提交(哈希)進行另一次重置以撤消重置。

git rm

從 git 中刪除特定文件。 您可以使用 reset 或 checkout 命令撤消 rm 的影響

git rm <file_ name> — 刪除特定文件

要從 git 中刪除文件但將它們保存在本地(暫存)中,請使用:

git rm --cached

git 顯示

通過指定其 SHA1 查看任何對象,例如 blob、樹、提交或標記

git show — 不指定 <object> 會顯示分支上最後一次提交的詳細信息。

git show <SHA1_id> — 顯示由其 SHA1 id 指定的對象的內容,例如,blob id、樹 id 等。要檢查對象的類型,請使用命令git cat-file -t

git show –pretty — 以漂亮的格式顯示輸出。

您可以提供自定義格式:

git show --pretty = 'format:Name: <format>'或者您可以使用短格式、全格式、單行格式、中格式或更全格式之一,例如:

git show --pretty= 'medium' ——這將顯示作者、日期、標題和完整的提交信息

git show --abbrev-commit — 縮寫 SHA1

混帳藏匿

要切換分支而不在當前分支中提交,請安全存儲未提交的數據

git stash — 保存工作和索引狀態

git stash save <message> — 保存時給消息

git stash list — 查看隱藏內容列表

git stash apply — 提交隱藏的更改。 要應用特定存儲的更改,請使用存儲索引 id 和 apply

git stash show — 查看隱藏文件的內容

git stash drop — 從隊列中刪除最近的存儲

狀態

查看repository和staging的狀態,即commit stage之前的狀態。 您可以在任何其他 git 命令之後使用此命令,例如添加、更新或刪除文件

git status — 顯示要提交的更改,或未跟踪(無暫存)的更改

例如,如果您在工作目錄中添加一個名為 samplefile.txt 的文件並檢查它是否已添加,則可以發出上述命令。 它將導致輸出如下:

 On branch master No commits yet Changes to be committed: (use "git rm --cached …" to unstage) new file: samplefile.txt

git標籤

友好引用用於指示代碼中的里程碑或參考點

git tag <tag_name> — 創建一個給定名稱的標籤

git tag — 列出所有可用的標籤

git tag show <tag_name> — 顯示指定標籤的詳細信息

git tag -l “.*” — 顯示匹配指定模式或字符的標籤

吉特克

啟動 git 用戶界面,在窗口中顯示內容、提交、完整差異和其他詳細信息

gitk — 在可視化窗口中打開 git repo

git版本

使用 git version 命令來檢查你正在使用的 git 的版本。

 C:\Users\geekflare>git version git version 2.38.0.windows.1

最後的話

這篇文章列出了最常用的 git 命令及其選項。

接下來,您可以查看 GitHub 憑據掃描程序。