Git 速查表:中级用户必备的 12 个 Git 命令


git config

git config 命令用于设置 Git 配置。使用这个命令,用户可以在三个不同级别设置配置:

  • 本地级别:在特定的 Git 仓库中(存储在项目根目录的 .git/config 文件中)。
  • 全局级别:针对操作系统中的当前用户。
  • 系统级别:针对操作系统中的所有用户。

默认情况下,git config 命令会更改本地级别的设置。此命令可用于设置诸如 Git 用户名、电子邮件地址、默认文本编辑器(如 Vim)、默认合并行为、终端输出外观和别名等信息。

例如,可以使用以下命令设置当前用户的名称和电子邮件:

git config --global user.name "Your Name"
git config --global user.email "name@example.com"

可以使用以下命令将 Git 的默认文本编辑器设置为 Vim:

git config --global core.editor "vim"

列出所有当前 Git 的配置:

git config --list --show-origin

git mv

git mv 命令用于在 Git 仓库中移动和/或重命名文件。该命令会在工作目录中移动文件,并更新 Git 索引中旧文件路径和新文件路径。

git mv path/to/old_file_name.ext path/to/new_file_name.ext

需要注意的是,文件在您的文件系统中也会被重命名/移动,所以这个命令一举两得。然而,旧文件的历史记录都被 Git 跟踪了,所以如果您发现需要旧版本,可以随时找回。

git rm

git rm 命令用于从 Git 仓库中删除文件。它会在工作目录中删除文件,并从 Git 索引中移除文件。

要删除特定文件:

git rm path/to/filename.ext

需要注意的是,此命令会从您的文件系统中删除文件。然而,已删除文件的历史记录仍被 Git 跟踪,所以如果您后来发现需要它,可以随时找回。

git diff

git diff 命令用于显示提交、分支以及其他代码状态之间的差异。默认情况下,git diff 显示工作树与暂存区之间的差异。

该命令还可用于比较分支之间的差异:

git diff branch1 branch2

或者用于比较两个提交之间的差异:

git diff commitID1 commitID2

为了比较一个特定文件,也可以加上第三个文件名参数:

git diff commitID1 commitID2 file_to_compare.ext

git reset

git reset 命令用于将分支恢复到先前的状态。当给出提交、分支或其他引用时,该命令将分支和 HEAD 引用移动到指向该引用的位置。如果未提供引用参数,则默认将引用指向 HEAD。

该命令提供了三种操作模式:soft, mixed,和 hard。使用 soft 选项时,索引会被更新,但暂存的提交和工作目录保持不变。使用 mixed 选项(默认选项)时,索引将被重置,已暂存的更改将被移回工作目录。使用 hard 选项时,索引和工作目录都会被重置,所有更改都将丢失。

要将暂存区重置为与最近的提交匹配,而不丢失工作区的任何数据,请使用以下命令:

git reset

撤销所有当前的更改并将工作区重置为与最近的提交匹配,请使用以下命令:

git reset --hard

git tag

git tag 命令用于创建一个人类可读的标签(例如版本号),用于引用存储库中特定的提交。标签在本质上是一个引用,类似于分支名称,但标签通常是静态的,因为它们指向单个提交,而分支名称是动态的,因为它们跟踪分支的末端,并随着新的提交添加而更新。通常情况下,标签在标记发布版本时很有用。

为当前签出的 Git 提交创建一个标记:

git tag tag_name

git rebase

Git rebase 命令允许用户将一系列提交移动到一个新的基础提交上。如果用户提供了一个引用参数,则该分支将在该分支上进行 rebase。否则,默认情况下,该分支将在远程分支上进行 rebase。

git rebase origin

通过在 rebase 命令中添加 -i 选项,用户可以执行交互式 rebase。在交互式 rebase 中,用户还可以组合、拆分、重新排序、删除和编辑提交记录。

git cherry-pick

git cherry-pick 命令接受一个或多个提交记录,并将它们应用到一个现有的分支上。该命令提供了一种快速将提交记录添加到多个分支的方式,而无需执行 rebase 操作。

要将单个提交记录选取并应用到当前分支上,可以执行以下操作:

git cherry-pick commitID

用户也可以选取一系列提交记录并将它们应用到分支上。默认情况下,cherry-pick 不包含第一个提交记录,但会包含最后一个提交记录。

git cherry-pick oldest_commit...newest_commit

要让 cherry-pick 命令包含第一个和最后一个提交记录,可以将命令更新如下:

git cherry-pick oldest_commit^...newest_commit

git bisect

git bisect 命令用于通过对提交历史记录进行二分查找来分离出特定的提交记录。该命令在帮助我们找出是哪个提交引入了 bug 时非常有用。

要运行这个命令,需要先找到一个问题未发生的过去提交记录,这里称之为 “good_commit_id”。然后在最近的分支上运行以下命令:

git bisect start
git bisect bad
git bisect good good_commit_id

Git 会对提交记录进行二分查找,它会检查当前提交和上一个好的提交之间的提交记录。此时,开发人员需要检查或测试代码,以确定 bug 是否仍然存在。如果 bug 仍然存在,则运行 git bisect bad 命令;如果 bug 不存在,则运行 git bisect good 命令。

一旦找到了引入 bug 的提交记录,搜索就会返回第一个坏的提交记录的 commit ID。从这里开始,用户可以检查引入 bug 的提交记录。然后可以使用 git bisect reset 命令将分支恢复到执行搜索之前的状态。

这为开发人员快速追踪 bug 的源头提供了一种方法,因为每次将提交历史记录分成两半,可以指数级地减少需要手动检查的提交记录数量。

git revert

git revert 命令用于撤消之前提交的更改。该命令接受一个 commit ID,然后在当前分支上创建一个新的提交记录,以反转 revert 提交记录中的更改。这种方法允许用户撤消一个更改,而无需重写历史记录。执行该命令将在分支的末尾产生一个新的提交记录,用于撤消 revert 的提交记录中的更改。

git revert commitID

git fetch

git fetch 命令用于从远程仓库下载引用(包括标签和分支)。它会下载新创建的引用,并完成本地已存储引用的历史记录。与 git pull 不同,git fetch 命令不会更新本地仓库的工作状态,也不会执行合并操作。默认情况下,git fetch 命令会获取当前仓库的所有引用。

要从远程仓库获取所有引用,请使用以下命令:

git fetch origin

要从特定分支获取引用,请使用以下命令:

git fetch origin branch_name

git blame

通过 git blame 命令,用户可以查看文件中每一行最后一次修改的时间以及进行修改的责任人。该工具对于理解文件的历史记录非常有用,可以帮助用户确定在代码更改方面应该向谁寻求问题或建议。

要查看特定文件的此信息,请使用以下命令:

git blame path/to/filename.ext

总结

虽然在使用 Git 的最基本级别时不需要这些中级命令,但它们可以帮助用户提高使用 Git 的效率。它们提供了一组强大的功能,可以帮助您成为一个全面发展的开发者,这通常意味着能够以创造性的方式解决问题。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9119

(0)
郭靖的头像郭靖
上一篇 2023年7月13日 下午4:15
下一篇 2023年7月17日 下午3:39

相关推荐

  • Docker镜像管理

    镜像和容器 如果曾经做过 VM 管理员,可以把 Docker 镜像理解为 VM 模板,而运行的VM就是容器如果你是名研发人员,则可以将镜像理解为类(Class),而容器就是对象用一句话来说镜像是容器的模板,容器是镜像的运行实例 镜像仓库服务 Docker 镜像存储在镜像仓库服务(Image Registry)当中。用户可以从Registry进行镜像下载和访问…

    2022年11月17日
    2.0K00
  • HP LaserJet MFP M132n连接使用

    1、通过文末的下载链接进行下载,下载后解压文件,双击setup.exe进行安装 2、勾选同意,后面的弹出窗口都点击同意,进行下一步 3、等待安装 4、选择自动设置,会自己寻找网络环境中的打印机 5、选择搜索出来的打印机,点击下一步 6、打印文件的时候选择到对应的打印机 相关文件下载地址 本地直接下载 ©下载资源版权归作者所有;本站所有资源均来源于网…

    2023年8月3日
    89100
  • SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复

    一、漏洞说明 Windows server 2008或2012、2016远程桌面服务SSL加密默认是开启的,且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷,当开启远程桌面服务,使用漏洞扫描工具扫描,发现存在SSL/TSL漏洞。例如如下漏洞: 二、修复办法 1、登录服务器,打开windows powershell,运行gpedit.msc,打开“本地…

    2022年11月16日
    1.4K00
  • T630-GPU服务器宕机、自动重启日志记录

    630-GPU服务器宕机,自动重启,日志记录:A fatal error was detected on a component at bus 128 device 3 function 0 故障原因: 造成机器宕机的原因是当多GPU高负载工作时, GPU 温度达到阈值(95度)触发了bus fatal error,导致重启宕机。 根本原因是IDRAC 温控…

    2023年5月17日
    99900
  • 戴尔Dell服务器带外管理iDRAC卡忘记密码,重置密码

    Dell服务器iDRAC重置,忘记密码环境:Dell R630服务器(也适用于R720、R730、R620、R420、R530)问题:Dell R630服务器iDRAC忘记密码。说明:13代机器默认iDRAC账号密码为:root/calvin。14代机器默认iDRAC账号为root。密码在机器前小抽拉卡片的背面【iDRAC password】上。两代的机器重…

    2024年1月18日
    1.6K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信