我开始使用的五个 Git 命令可能对你有帮助
Git 是一款强大的工具,我每天都在使用。几个月前,我只能用它完成日常工作。后来我换了一家公司,团队规模更大,很快我就发现 Git 有很多我不太了解、也很少用到的功能。
现在我感觉自信多了,也学到了很多有用的新东西!虽然我不会深入讲解 Git 的基础知识,因为网上有很多很棒的资源可以帮你学习,但我还是想向你展示五个我认为非常有用的命令,它们或许能帮你省去一些麻烦。它们确实帮我省了一些麻烦。
让我们开始吧!
修改:提交后更改提交
你提交了某个文件,然后突然意识到提交信息不够清晰,或者不符合项目的提交信息格式规则。也许你意识到需要做一点小改动,比如删除那个不重要的小符号console.log()
,又或者你忘了添加一个新文件。
以上这些听起来熟悉吗?我肯定听过,而且已经发生过好几次了!幸运的是,有一种方法可以在推送之前更改(或者更确切地说是更新)最新的提交,方法是使用--amend
。
您可能需要更改提交的两个部分:第一部分是提交消息,第二部分是文件。我们先从更改提交消息开始。
更改提交消息
在最基本的形式中,更改提交消息的命令如下所示:
git commit --amend
这将打开你配置的 Git 代码编辑器,并允许你更改提交信息。不过,你也可以在不打开编辑器的情况下更改提交信息:
git commit --amend -m "Your updated commit message"
添加-m
标志,然后在引号中添加更新的消息,这样您就可以更改消息而无需打开编辑器。
修改变更或文件
假设你console.log()
在提交后发现了一个恶意文件,并想将其移除。编辑该文件并将其暂存,就像你通常提交文件一样。然后运行以下命令:
git commit --amend --no-edit
这将修改文件以使其符合提交条件。此—no-edit
标志允许您在不更改提交消息的情况下执行此操作。
⚠️ 警告
使用不会更改提交。相反,它会用一个全新的提交替换该提交。因此,切勿—amend
修改公开提交,这一点至关重要。您的本地提交完全没问题。
签出:恢复单个文件
最近,我为正在开发的新功能提交了一个拉取请求。我的工作之一是删除旧文件中的一些旧样式。当我删除这 8 行样式并点击保存后,Prettier 会自动运行,因为我的 IDE 就是这样设置的。
结果代码改动了上千处,根本没法弄清楚我到底改了什么。我完全没注意到,还兴高采烈地提交了一个拉取请求,准备审核。哎呀😅。
我不得不还原该文件,确保 Prettier 没有运行,然后进行修改、保存,最后提交到分支以便进行正确审核。幸运的是,它git checkout
救了我一命!
要将单个文件恢复到上一次提交,请运行以下命令:
git checkout <commit_hash> -- <path/to/file>
首先找到保存您需要恢复的更改的提交,这很可能是您需要恢复的提交之前的 1 个提交,然后找出该文件的路径(最简单的方法是复制代码编辑器中的相对路径)。
你的文件现在已恢复到你选中的提交时的状态。就我而言:在我移除样式并运行 Prettier 之前。呼,危机解决了🥳。
远程:添加另一个远程仓库
我将根据真实事件的假设情况来概述这一部分。
假设你正在开发一个新功能,你的同事,我们姑且叫她 Kate,正在开发一个你需要集成到你的功能中的新版本。你们都在团队中央仓库的一个分支上工作,你需要拉取 Kate 在她分支上所做的最新更改。
当你将 fork 的仓库克隆到系统时,Git 会自动创建一个名为 origin 的远程连接。你可能已经知道这一点,但你知道你也可以将 Kate 的仓库添加为远程连接吗?当你想拉取 Kate 所做的更改,而不必将其推送到中央仓库时,这非常有用。
让我们看看如何将 Kate 的仓库添加到远程连接列表中,下一节我们将学习如何获取她的更改。添加她的仓库的方法如下:
git remote add <name> <url>
可以name
是任何你想要的。我通常坚持使用我同事的名字或 Github 用户名。url
是她仓库的 URL,例如:git@github.com:Kate/acme-fork.git
。 组合起来:
git remote add kate git@github.com:Kate/acme-fork.git
如果您运行git remote
,它将列出所有远程连接,您将看到 Kate 的远程存储库。
远程:从远程分支获取分支
要从特定远程获取特定分支,请运行以下命令:
git fetch <remote> <branch>
在上一节中,我们讨论了如何将 Kate 的仓库添加到远程连接。Kate 正在一个名为 的分支上工作new-feature
。使用上述命令,如下所示:
git fetch kate new-feature
运行该命令将获取 Kate 的分支并将其本地保存在 中kate/new-feature
。这里发生的情况是,您获取的远程分支可以使用 来获取<remote-name>/<branch-name>
。
要将 Kate 的更改合并到您的分支中,您必须转到git checkout
您的分支,然后合并刚刚获取的分支:
git merge kate/new-feature
Kate 的分支现已合并到您的分支👍。
检出:基于另一个分支创建分支
我最近正在重写一个功能,使用的库与生产环境中使用的库不同。除了重写代码外,还需要添加新的功能。我分两步来解决这个问题:
- 重写该功能,因为它目前在生产中起作用,并检查我的代码以确保我没有遗漏任何东西。
- 添加新功能。
第一步,我创建了一个名为 的重写分支feature-rewrite
。其实比这更复杂一些,但你明白我的意思!你可能熟悉如何在 CLI 中执行此操作,但如果不熟悉,可以这样做:
git checkout -b feature-rewrite
该标志告诉 Git ,如果分支尚不存在,则在检出该分支之前-b
运行,非常简洁😄。git branch feature-rewrite
在等待代码审查期间,我继续添加新功能。这必须基于我刚刚完成的重写来完成。换句话说:我必须基于这个feature-rewrite
分支创建一个新的分支。具体操作如下:
git checkout -b new-functionality feature-rewrite
checkout 命令接受第二个参数,以便 Git 知道新分支基于哪个分支。为了更清楚地说明这一点,请执行以下操作:
git checkout -b <new-branch> <existing-branch>
最后的话
在过去的几个月里,我学到了很多关于 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