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

相关推荐

  • midjourney人工智能绘图小白使用攻略

    这段时间以来,各种用Midjourney生成的神图层出不穷,国足夺冠、特朗普插秧、教皇打碟、异形下乡……只要你敢想AI就敢画,而且随便拿出一张都能做到以假乱真的程度。但可能有创作的伪照片过于真实,引起了太多争议,太多新用户涌入导致服务器不堪重负,Midjourney宣布关闭了其免费账户的使用通道。 midjourney归属于DISCORD,是一个聊天室网站,…

    2023年4月23日
    35500
  • Docker Commit构建镜像

    docker commit只用于特殊场合,比如被入侵后保存现场。一般不使用docker commit构建镜像。 现在让我们以定制一个 Web 服务器为例子,来讲解镜像是如何构建的。 这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口,这样我们可以用浏览器去访问这个 nginx 服务器。 如果是在本机运行的 Dock…

    2022年11月19日
    35600
  • Windows同步工具SyncToy安装文档

    1.进入官网下载SyncToy2.1,下载连接如下: 2.安装SyncToy安装前需要安装Microsoft.NET Frameworks按照提示默认安装,默认安装路径为:C:\Program Files\SyncToy在本次运用中,将SyncToy安装在192.168.10.1中。安装完成后看到SyncToy的运行界面如下: 3.使用SyncToy开始进行…

    2022年8月8日
    60200
  • 超级好用的装机神器——Ventoy

    Ventoy是一款国人开发的新一代多ISO启动引导程序,这款工具最大的优点就是无需格式化优盘,用户只需要将所需的ISO镜像文件拷贝至优盘中即可在Ventoy界面中选择自己想要的ISO镜像文件。 Ventoy五大优势 广泛兼容:支持包括Windows 10、Windows 8.1、Windows 7、WinPE 系统以及Ubuntu等多种Linux发行版。 无…

    2023年8月10日
    26300
  • 远程连接工具Xshell

    Xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows平台的TELNET 协议。Xshell通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外…

    2022年6月15日
    55500

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

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