为初学者准备的 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 凭据扫描程序。