了解命令行:基本 Git 命令
几周前,我以这篇关于基本命令的文章开启了“了解命令行”系列。您正在阅读的这篇文章是第二部分,它将涵盖我认为新开发人员应该熟悉的基本Git命令。实际上,不仅仅是熟悉。新开发人员需要彻底熟悉这些命令,因为它们不太可能很快被淘汰。
在深入探讨之前,我们先来回答一个问题:什么是 Git?它是一个版本控制系统,适用于各种规模的项目。什么是版本控制系统?从表面上看,版本控制系统有助于跟踪代码库的变更,同时保留先前版本的副本。
介绍完毕,我们就开始吧。
git init
git init
是允许我们将 Git 添加到当前工作目录(项目)的命令。更详细地说,此命令会创建一个空的 Git 仓库或重新初始化一个已存在的仓库。
为了撰写这篇博文,我创建了一个名为 的新项目git-command-practice
,并使用命令cd git-command-practice
切换到项目目录。接下来,我将为该项目初始化 Git。
git remote add origin <GitHub URL>
对于使用GitHub作为首选存储库托管站点的用户,我们需要创建一个新的 GitHub 存储库。下一步是使用命令git remote add origin <GitHub URL>
将我们的本地项目与 GitHub 存储库连接起来。
这使我们能够看到在 GitHub 上对代码所做的更改和提交。我们将能够看到文件更改、新代码行、已删除的行以及每次提交的提交消息。
git clone <GitHub URL>
该git clone
命令用于将现有仓库复制到本地计算机。假设有人想克隆我 GitHub 个人资料(例如我的投资组合网站)上现有的一个项目。可以使用该命令git clone https://github.com/torianne02/victoria-fluharty-portfolio
。
现在我们已经介绍了启动和运行存储库所需的命令,让我们讨论一下在编写代码时经常使用的某些命令。
git
/git --help
我接下来要向大家介绍几个命令,大家可能会觉得有点不知所措。不过别担心,接下来的几个命令对于像我这样记不住东西的人来说非常有帮助。
如果在编写代码时感到迷茫或记不住某个命令,他们可以使用命令git
或git --help
,它们返回相同的内容:常用 git 命令列表。
与大多数 Git 命令一样,git --help
它具有允许我们添加选项以接收不同类型的输出。
注意:大多数 Git 命令都有许多选项,我不会在这里讨论所有选项,但我会讨论一些我认为可能有用的值得注意的选项。
git --help -a
此命令列出可用的子命令。
git --help -g
此 Git 命令输出可用的 Git 指南列表。
git --help <command name>
这是一个有用的 Git 命令,它允许我们查看有关特定 Git 命令的详细信息,例如描述、选项、示例等。
git status
git status
在我看来,可以说是编写代码时最常用的 Git 命令。此命令允许我们查看当前工作树的状态。它通过输出以下路径来实现这一点:
- 索引文件和当前 HEAD 提交之间存在差异。
- 工作树和索引文件之间存在差异。
- 位于工作树中但尚未被 Git 跟踪。
此时,让我们在此项目中创建一个名为的文件practice-file.rb
。现在让我们使用命令git status
。
请注意,它说我们的新文件“未被跟踪”,这引导我执行下一个命令:
git add <file path>
git add
是用于将文件的内容/更改添加到索引的命令。为了将新创建的文件添加到 Git 以便跟踪,我们可以运行以下命令
git add .
如果想要添加最近更改的所有文件,可以使用命令git add .
。
如果我希望读者从本文中学到一点,那就是永远不要在未运行 的情况下使用此命令git status
。为什么?为了确保了解所有已更改并即将添加到索引的文件。如果开发人员不小心按了某个键,导致在一个本不该编辑的文件上输入了拼写错误怎么办?

好吧好吧。也许没那么夸张,但请务必留意你添加到索引里的内容!
现在我们已经使用了git add
该命令,让我们git status
再次使用它来查看它是什么样子。
请注意短语“要提交的更改”,后面跟着我们最近添加到索引的文件路径practice-file.rb
。这将引出下一个命令:git commit
。
git commit
该命令git commit
记录了索引的当前内容,这些内容恰好是我们使用添加到索引中的代码所做的所有更改git add
。
git commit -m
提交代码时,需要添加一条关于代码更改的详细信息。在本例中,我创建了一个练习文件,用于截取本文介绍的命令的屏幕截图,因此我应该在消息中表达这一点。为了实现这一点,我必须-m 'message here in quotes'
在命令中添加git commit
。如下所示:
您会在屏幕截图中注意到我有几个拼写错误。

你猜怎么着?!这不是噩梦,我们可以解决的!
git commit --amend -m
说实话,我们每个人都会时不时地犯错。幸好,Git 允许我们在提交信息中修改拼写错误。
如果我们在使用下一个命令( )之前注意到了错误git push
,可以使用命令git commit --amend -m 'new message to replace old message'
。让我们来修复这个拼写错误!
太棒了!现在我们可以继续执行下一个命令了。
git push
git push
一旦人们对其代码所做的更改以及他们记录的提交消息感到满意,该命令就会发挥作用。git push
使用本地提交和更改更新当前存储库的远程引用和存储库(在我们的例子中是 GitHub 存储库)。
git checkout <branch name>
git checkout
是一个允许在存储库的不同分支之间切换的命令。什么是分支?分支本质上是master
存储库版本的副本,具有唯一的名称,开发人员可以使用它来更改代码库,而无需直接更改分支master
。
git checkout -b <branch name>
使用 Git 的一个常见做法是为项目中的每个新功能或重大变更创建一个分支。分支允许开发人员在master
代码库的分支上工作。换句话说,开发人员可以对此分支进行大量更改,而不会影响代码库的主版本。至少在他们选择将新更改添加到代码库之前不会master
。
让我们创建一个名为的新分支new-practice-branch
并使用以下命令切换到它:
现在,让我们使用git checkout
切换回master
分支。
现在我们已经介绍了分支,接下来让我们介绍一下当想要将两个分支连接在一起时应该使用什么命令。
git merge <branch name>
git merge
是合并两个分支时使用的命令。假设我们当前在某个分支,并且想要将对所做master
的更改添加到。为了实现这一点,我们需要使用这个命令new-practice-branch
master
太棒了!现在我们成功合并了两个分支。假设我们正在与一位合作伙伴合作,他们在自己的本地机器上进行了更改,并推送到我们远程 GitHub 版本的master
。这意味着我本地的 版本master
不是最新的。别担心!有一个命令可以解决这个问题。
git pull
git pull
这使得我们能够从其他仓库或本地分支获取更改,并将其与本地仓库集成。这很简洁,但这并不能完全解决我们的问题。不过,下一个命令可以!我们来看看。
git pull origin master
为了将本地版本的 更新master
为 GitHub 远程版本的 ,我们需要使用的命令master
是git pull origin master
。我们在这里所做的就是添加一个原点指针,告诉 Git 我们要从哪里拉取。
在这个例子中,我是唯一一个在这个项目上工作的人,所以没有什么可以拉取的,这就是为什么我收到了“已更新”的消息。如果不是这种情况,情况会有所不同。
最后的想法
呼!你可能感觉我刚刚给你扔了一堆新命令。不过别担心!即使是高级开发人员也需要不时地谷歌一下,所以如果没能马上掌握也不要难过。你用得越多,它们就越快成为你的第二天性。
祝您旅途愉快,敬请关注本系列的后续文章!
注:这篇文章的封面照片来自我最喜欢的地方之一:加利福尼亚州猛犸湖的双子湖。
资源
Git——必备的 Git 命令!
每个初学者都应该记住的 6 个 Git 命令
每个开发人员都应该知道的基本 Git 命令
git-help
基本 Git 命令