我开始使用的五个 Git 命令可能对你有帮助

2025-06-07

我开始使用的五个 Git 命令可能对你有帮助

版本控制图解

Git 是一款强大的工具,我每天都在使用。几个月前,我只能用它完成日常工作。后来我换了一家公司,团队规模更大,很快我就发现 Git 有很多我不太了解、也很少用到的功能。

现在我感觉自信多了,也学到了很多有用的新东西!虽然我不会深入讲解 Git 的基础知识,因为网上有很多很棒的资源可以帮你学习,但我还是想向你展示五个我认为非常有用的命令,它们或许能帮你省去一些麻烦。它们确实帮我省了一些麻烦。

让我们开始吧!

修改:提交后更改提交

你提交了某个文件,然后突然意识到提交信息不够清晰,或者不符合项目的提交信息格式规则。也许你意识到需要做一点小改动,比如删除那个不重要的小符号console.log(),又或者你忘了添加一个新文件。

以上这些听起来熟悉吗?我肯定听过,而且已经发生过好几次了!幸运的是,有一种方法可以在推送之前更改(或者更确切地说是更新)最新的提交,方法是使用--amend

您可能需要更改提交的两个部分:第一部分是提交消息,第二部分是文件。我们先从更改提交消息开始。

更改提交消息

在最基本的形式中,更改提交消息的命令如下所示:

git commit --amend
Enter fullscreen mode Exit fullscreen mode

这将打开你配置的 Git 代码编辑器,并允许你更改提交信息。不过,你也可以在不打开编辑器的情况下更改提交信息:

git commit --amend -m "Your updated commit message"
Enter fullscreen mode Exit fullscreen mode

添加-m标志,然后在引号中添加更新的消息,这样您就可以更改消息而无需打开编辑器。

修改变更或文件

假设你console.log()在提交后发现了一个恶意文件,并想将其移除。编辑该文件并将其暂存,就像你通常提交文件一样。然后运行以下命令:

git commit --amend --no-edit
Enter fullscreen mode Exit fullscreen mode

这将修改文件以使其符合提交条件。此—no-edit标志允许您在不更改提交消息的情况下执行此操作。

⚠️ 警告

使用不会更改提交。相反,它会用一个全新的提交替换该提交。因此,切勿—amend修改公开提交,这一点至关重要。您的本地提交完全没问题。

签出:恢复单个文件

最近,我为正在开发的新功能提交了一个拉取请求。我的工作之一是删除旧文件中的一些旧样式。当我删除这 8 行样式并点击保存后,Prettier 会自动运行,因为我的 IDE 就是这样设置的。

结果代码改动了上千处,根本没法弄清楚我到底改了什么。我完全没注意到,还兴高采烈地提交了一个拉取请求,准备审核。哎呀😅。

我不得不还原该文件,确保 Prettier 没有运行,然后进行修改、保存,最后提交到分支以便进行正确审核。幸运的是,它git checkout救了我一命!

要将单个文件恢复到上一次提交,请运行以下命令:

git checkout <commit_hash> -- <path/to/file>
Enter fullscreen mode Exit fullscreen mode

首先找到保存您需要恢复的更改的提交,这很可能是您需要恢复的提交之前的 1 个提交,然后找出该文件的路径(最简单的方法是复制代码编辑器中的相对路径)。

你的文件现在已恢复到你选中的提交时的状态。就我而言:在我移除样式并运行 Prettier 之前。呼,危机解决了🥳。

远程:添加另一个远程仓库

我将根据真实事件的假设情况来概述这一部分。

假设你正在开发一个新功能,你的同事,我们姑且叫她 Kate,正在开发一个你需要集成到你的功能中的新版本。你们都在团队中央仓库的一个分支上工作,你需要拉取 Kate 在她分支上所做的最新更改。

当你将 fork 的仓库克隆到系统时,Git 会自动创建一个名为 origin 的远程连接。你可能已经知道这一点,但你知道你也可以将 Kate 的仓库添加为远程连接吗?当你想拉取 Kate 所做的更改,而不必将其推送到中央仓库时,这非常有用。

让我们看看如何将 Kate 的仓库添加到远程连接列表中,下一节我们将学习如何获取她的更改。添加她的仓库的方法如下:

git remote add <name> <url>
Enter fullscreen mode Exit fullscreen mode

可以name是任何你想要的。我通常坚持使用我同事的名字或 Github 用户名。url是她仓库的 URL,例如:git@github.com:Kate/acme-fork.git。 组合起来:

git remote add kate git@github.com:Kate/acme-fork.git
Enter fullscreen mode Exit fullscreen mode

如果您运行git remote,它将列出所有远程连接,您将看到 Kate 的远程存储库。

远程:从远程分支获取分支

要从特定远程获取特定分支,请运行以下命令:

git fetch <remote> <branch>
Enter fullscreen mode Exit fullscreen mode

在上一节中,我们讨论了如何将 Kate 的仓库添加到远程连接。Kate 正在一个名为 的分支上工作new-feature。使用上述命令,如下所示:

git fetch kate new-feature
Enter fullscreen mode Exit fullscreen mode

运行该命令将获取 Kate 的分支并将其本地保存在 中kate/new-feature。这里发生的情况是,您获取的远程分支可以使用 来获取<remote-name>/<branch-name>

要将 Kate 的更改合并到您的分支中,您必须转到git checkout您的分支,然后合并刚刚获取的分支:

git merge kate/new-feature
Enter fullscreen mode Exit fullscreen mode

Kate 的分支现已合并到您的分支👍。

检出:基于另一个分支创建分支

我最近正在重写一个功能,使用的库与生产环境中使用的库不同。除了重写代码外,还需要添加新的功能。我分两步来解决这个问题:

  1. 重写该功能,因为它目前在生产中起作用,并检查我的代码以确保我没有遗漏任何东西。
  2. 添加新功能。

第一步,我创建了一个名为 的重写分支feature-rewrite。其实比这更复杂一些,但你明白我的意思!你可能熟悉如何在 CLI 中执行此操作,但如果不熟悉,可以这样做:

git checkout -b feature-rewrite
Enter fullscreen mode Exit fullscreen mode

该标志告诉 Git ,如果分支尚不存在,则在检出该分支之前-b运行,非常简洁😄。git branch feature-rewrite

在等待代码审查期间,我继续添加新功能。这必须基于我刚刚完成的重写来完成。换句话说:我必须基于这个feature-rewrite分支创建一个新的分支。具体操作如下:

git checkout -b new-functionality feature-rewrite
Enter fullscreen mode Exit fullscreen mode

checkout 命令接受第二个参数,以便 Git 知道新分支基于哪个分支。为了更清楚地说明这一点,请执行以下操作:

git checkout -b <new-branch> <existing-branch>
Enter fullscreen mode Exit fullscreen mode

最后的话

在过去的几个月里,我学到了很多关于 Git 的新知识,以及如何充分利用它。这篇文章中列出的命令是迄今为止最有用的,对我来说真的救了大忙。

感谢您阅读这篇文章,希望它对您有所帮助!

这篇文章最初发表在我的博客上:https://www.mikedecodes.com/blog/five-git-commands-i-started-using-that-might-be-helpful-to-you

文章来源:https://dev.to/murkrage/ Five-git-commands-i-started-using-that-might-be-helpful-to-you-536e
PREV
养成习惯:对我有用的一个技巧
NEXT
使用 Cypress 进行 API 测试:第一部分 - 设置 大家好!先决条件 Github 创建 Cypress 项目 创建我们的第一个测试目标 API