32个Git命令速查表(适用于初学者)

GIT命令速查表是开发人员的便捷参考,包含了Git项目中最常用的命令。

GIT是什么?

GIT是一个开源的存储库,用户可以将文件(包括代码、压缩包、文本或整个项目)放在其中。

它具有协作、版本控制、流程控制等多个功能。与其他版本控制系统相比,GIT存储文件更高效、提供更好的完整性。Git是一个命令行工具。

Github是什么?

凭借其简洁的用户界面,GitHub,开发人员的中心已成为使用最广泛的版本控制系统,任何人在任何地方都可以访问。

Git工作流程

Git有不同的工作流程,每个项目都应该根据其需求选择适合的工作流程。Git工作流不过是一种基于分支的轻量级工作流,有助于经常部署项目的团队。

例如,分叉Git工作流会创建一个存储库的本地副本。因此,每个开发人员都有一个本地工作空间和一个中央存储库。当多个开发人员参与时,这种工作流非常有用,并允许开发人员在更改主存储库之前在分叉副本上进行协作。

为什么我们需要Git?

由于Git是一个版本控制系统,开发人员会不断地在上面工作,保存他们的更改、让其他人查看、合并他们的更改等等。

对于Git存储库的任何更改,开发人员都需要知道正确的命令以执行正确的操作。下面是一些重要且常用的Git命令列表:

常用的Git命令

git add

将指定的文件添加到暂存区

git add  -- 添加特定文件
git add * -- 添加所有文件

git archive

创建提交、分支和树的归档,并将多个文件合并为一个。在需要时,可以通过提取文件来检索内容

git archive HEAD — 从存储库的HEAD引用创建归档

git archive output = ‘.tar’ — 将归档文件存储在指定位置

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

git branch

列出存储库中的所有分支。如果指定了分支名称,则创建一个名为该名称的新分支。使用-d选项和分支名称删除分支。使用-m选项重命名当前分支。

git branch — 列出所有分支

git branch -- 创建名为'branch_name'的新分支,但不切换到新分支。

git branch -d  — 删除分支,如果存在未合并的更改,则会阻止删除

git branch -D  — 强制删除分支,即使存在未合并的更改

git branch -m — 重命名当前分支

git cat-file

显示存储库对象的内容或大小/类型信息

git cat-file  — 显示对象的内容

git cat-file -t  — 显示对象的类型

git cat-file -s — 显示对象的大小

git cat-file -p — 以漂亮的方式打印对象的类型

git cat-file -e — 如果对象格式无效或不存在,则在stderr上显示错误

git cat-file  — 显示对象的原始内容

git checkout

用于在存储库的不同分支之间切换,要小心使用,因为没有“撤消”。

git checkout  — 检出指定的分支

git checkout -b — 创建一个新的分支并切换到该分支

例如:

C:Usersyaoweibin>git checkout -b development_branch
切换到新分支'development_branch'

git clean

清理工作目录。已提交的文件将不会被删除

git clean -n — 列出将要被删除的文件

git clean -f — 删除文件

git clone

将现有仓库创建一个副本到一个新目录中。用于获取中央仓库的开发副本。

git clone — 将中央仓库创建一个副本到一个新目录

例如:

C:Usersgeek>git clone yaoweibin master
正在克隆到 'master'...
完成。

git clone -branch — 克隆来自指定仓库的分支

git commit

保存更改到暂存区以供他人查看。

git commit — 将更改提交到暂存区

git commit -m  — 在提交时提供一个消息以突出显示所做的更改

git commit -a  — 直接提交更改,无需暂存

假设你在工作目录中添加了一个名为samplefile.txt的文件,并想要提交该文件。在执行上述命令后,你将获得以下输出:

请输入提交的消息。以 '#' 开头的行将被忽略,空消息会中断提交。
在分支 master 上
初始提交
将要提交的变更内容:
新文件:samplefile.txt

在输入消息后,更改将被提交:

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

git config

指定要写入属性值的配置级别。当未指定任何配置级别时,默认为'Local'级别。

git config –local — 将配置保存在仓库的 .git 目录中

git config –global — 将配置保存在用户的主目录中

git config –system — 包含所有用户和仓库的配置,位于根目录的 git config 文件中。

git diff

比较git仓库中的更改,可以在暂存之前、暂存时和暂存之后(提交)进行。

git diff — 跟踪尚未暂存的仓库更改

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

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

git diff  — 跟踪两次提交之间的更改;可以使用'git log -p --follow --filename'命令查找提交ID

git fetch

获取一个分支或整个远程仓库

git fetch — 从远程仓库URL获取整个仓库

git fetch — 获取指定分支

git fetch -all — 获取远程仓库的所有分支

git fetch origin — 更新并同步本地仓库与远程仓库中的新更改

git fsck

File System ChecK 命令检查数据库对象的有效性和连接性。它检查对象的SHA-1ID及其之间的连接。Fsck用于恢复丢失的提交和文件。

git fsck –full

git gc

对当前仓库运行垃圾回收,清理未使用的文件。

git gc

git grep

在仓库中搜索特定内容。Git提供了许多选项以不同的方式进行搜索

git grep -i ‘search_term’ — 忽略大小写进行搜索 [Man和man将被视为相同]

git grep -f — 显示特定文件的匹配模式

git grep -e ‘search-term’ — 使用-e进行模式匹配

git grep -E ‘regexp|multiple_exp’ — 搜索正则表达式,可以使用管道(或)运算符搜索多个

git grep -n ‘expr’ — 在匹配行的前面添加行号

git grep -c ‘expr’ — 显示匹配行数的计数,而不是每行显示

git ls-tree

列出当前目录下树对象的内容。

git ls -tree -d — 只显示指定的树项,不包括子项

git ls -tree -r — 递归到子树

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

git ls -tree --name-only — 仅显示文件名,而不是详细输出

git ls -tree --full-name — 显示完整路径名,而不仅仅是相对于当前目录的路径

示例:

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

git init

创建一个新的空白仓库。这是你执行的第一个命令,用于创建一个git项目。

git init — 在工作目录中创建一个.git仓库。

例如,要创建一个名为「yaoweibin」的新仓库,请执行以下命令:

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

git instaweb

通过浏览器浏览git仓库的用户界面。使用CGI脚本GitWeb。

git instaweb --httpd=webrick — 启动服务器(httpd)并在网页上打开浏览器。

要停止服务器,请使用上述命令加上--stop选项。

git log

记录git仓库中的每个活动。

git log — 显示最近几次提交

git log --oneline — 每行显示SHA的前7个字符和提交消息

git log stat — 显示有关修改文件的更多信息,如添加/删除的行数,更改的总记录数,添加/删除的行数的汇总

git log --patch (或 -p) — 显示已修改的文件、具体更改及其位置

git log --graph — 以图形形式查看日志结果

git log - — 显示最近的「n」个提交

git log --after= — 显示指定日期之后的所有提交。你可以使用--before来显示指定日期之前的提交

git log --author= — 显示特定作者(用户)的提交

git log --grep= — 根据提交消息筛选提交

git merge

将所有开发文件集成到一个分支中,合并两个分支,并将多个提交合并为一条历史记录。如果存在冲突,则合并会停止,并且git会显示冲突的文件。解决冲突后,合并会继续进行。

git checkout -b — 首先,检出要合并的分支

git add

git commit — 添加并提交文件

git checkout master

git merge — 将分支与主分支合并

git prune

删除(修剪)当前分支中无法访问的文件。这是一个清理过程,用于从分支中删除未使用的文件。

git prune -n — 不进行修剪,只显示可以修剪的内容

git prune -v — 显示修剪操作的输出

git prune --progress — 显示修剪的进度

git fetch --prune — 修剪所有过时的分支

git pull

从远程服务器接收数据到工作仓库。它使用远程仓库的最新文件更新本地(工作)分支。

git pull — 拉取远程仓库

git pull — 拉取特定的远程分支

git push

将所有本地更改推送到远程仓库。它是与pull和fetch相反的上传过程。

git checkout master — 切换到最新更改的分支

git push origin master — 将更改推送到远程仓库

示例:

C:Usersgeek>git checkout development_branch
切换到分支 'development_branch'
C:Usersgeek>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

我们还可以使用push命令删除远程分支,使用命令git push --delete

例如:

C:Usersgeek>git push master --delete development_branch
To master
[deleted] development_branch

git rebase

将不同分支的多个提交合并为一个新的基本提交。在合并所有更改之前,将不同分支的更改逐个提交(线性提交)。

git rebase — 将提交合并为一个新的基本提交

如果存在冲突,请解决它们并继续rebase:
git rebase --continue

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

git remote

检查远程服务器的配置,并允许远程和本地之间的连接访问。

git remote — 默认情况下,返回'origin',Git给出的远程服务器的默认名称

git remote -v — 列出所有可用的远程连接的简短名称和URL

git remote add — 显式添加远程服务器到可用连接中。可以在git命令中使用简短名称而不是提供整个URL。

git remote remove — 从仓库中删除远程服务器

git reset

返回到之前的提交,并放弃该提交之后的更改

git reset — 将仓库恢复到指定的提交。Git将保留提交历史,因此您可以使用不同的提交(哈希)进行另一个reset以撤消reset。

git rm

从git中移除特定文件。可以使用reset或checkout命令撤消rm的影响

git rm — 移除特定文件

要从git中删除文件但在本地(暂存区)保留文件,请使用:

git rm --cached

git show

通过指定其SHA1查看任何对象,例如blob、tree、commit或tag

git show — 不指定将显示分支上最后一次提交的详细信息。

git show — 显示由其SHA1 ID指定的对象内容,例如blob ID、tree ID等。要检查对象的类型,请使用命令git cat-file -t

git show –pretty — 以漂亮的格式显示输出。

您可以提供自定义格式:

git show --pretty='format:名称:'或者您可以使用其中一个短格式、完整格式、一行格式、中等格式或更完整格式,例如:

git show --pretty='medium' — 这将显示作者、日期、标题和完整的提交消息

git show --abbrev-commit — 缩写SHA1

git stash

在当前分支中切换而不进行提交,可以安全地存储未提交的数据

git stash — 保存工作和索引状态

git stash save — 保存时给出一条消息

git stash list— 查看存储内容的列表

git stash apply— 提交存储的更改。要应用特定存储的更改,请使用存储索引ID和apply

git stash show— 查看存储文件的内容

git stash drop— 从队列中删除最近的存储

git status

查看仓库和暂存区的状态,即提交阶段之前的状态。您可以在任何其他git命令之后使用此命令,例如添加、更新或删除文件。

git status — 显示将要提交的更改,或者未跟踪(未暂存)的更改

例如,如果您在工作目录中添加了一个名为samplefile.txt的文件并想要检查它是否已添加,可以给出上述命令。它将结果输出如下:

在分支 master 上
尚无提交
将要提交的更改:
(使用“git rm --cached…”取消暂存)
新文件:samplefile.txt

git tag

友好的引用用于指示代码中的里程碑或参考点

git tag — 使用给定的名称创建一个标签

git tag — 列出所有可用的标签

git tag show — 显示指定标签的详细信息

git tag -l ".*"— 显示与指定模式或字符匹配的标签

gitk

启动git用户界面,以在窗口中显示内容、提交、完整差异和其他详细信息

gitk — 在窗口中打开git仓库以进行可视化

git version

使用git version命令检查您正在使用的git版本。

C:Usersyaoweibin>git version
git version 2.38.0.windows.1

最后的话

本文列出了常用的git命令及其选项。

接下来,您可以查看 GitHub credentials scanner.

类似文章