Git 是日常编程中的一个重要部分,尤其是在与团队合作时经常使用。

Git 有许多命令,掌握它们会花费一些时间。但是其中一些命令的使用频率比较高(几乎每天都会用)。因此,在本文中,我将分享和解释每个开发人员都应该知道的 10 个最常用的 Git 命令。

注意:要理解本文,你需要了解 Git 的基础知识。

1. Git clone

Git clone 是用于从远程仓库(例如 GitHub)下载现有源代码的命令。换句话说,Git clone 会基于仓库中项目的最新版本生成一个相同的副本,并将其保存到你的计算机中。

有几种下载源代码的方法,但在大多数情况下,我更喜欢使用 https 进行克隆:

git clone <https://name-of-the-repository-link>

例如,如果我们要从 GitHub 下载项目,只需要单击绿色按钮(克隆或下载),复制框中的 URL,然后将其粘贴到上面的 git clone 命令之后。

resim-4
GitHub 上的 Bootstrap 源代码

这会将项目复制到你的本地工作区,你就可以开始使用它了。

2. Git branch

分支在 Git 世界中非常重要。通过使用分支,几个开发人员可以同时在同一个项目上并行工作。 我们可以使用 git branch 命令创建、列出和删除分支。

创建一个新分支

git branch <branch-name>

此命令将在本地创建一个分支。要将新分支推送到远程仓库,你需要使用以下命令:

git push -u <remote> <branch-name>

查看分支

git branch or git branch --list

删除分支

git branch -d <branch-name>

3. Git checkout

这也是最常用的 Git 命令之一。要在分支中工作,首先需要切换到该分支。我们通常使用 git checkout 从一个分支切换到另一个分支。我们还可以使用它来检出文件和提交(commits)。

git checkout <name-of-your-branch>

要在分支之间成功切换,需要遵循一些步骤:

  • 在切换之前,必须先提交或保存当前分支中的更改
  • 你要切换的分支应该存在于你的本地

还有一个快捷命令,使你可以同时创建并切换到分支:

git checkout -b <name-of-your-branch>

此命令在本地创建一个新分支(-b 代表分支),并在创建分支后立即切换到新分支。

4. Git status

Git status 命令为我们提供了有关当前分支的所有必要信息。

git status

我们可以收集以下信息:

  • 当前分支是否是最新的
  • 是否有任何要提交、推送或拉取的东西
  • 是否有暂存的、未暂存的或未跟踪的文件
  • 是否有创建的、修改的或删除的文件
image-4
Git status 显示分支和文件的信息

5. Git add

当我们创建、修改或删除文件时,这些更改将在我们的本地发生,并且不会包含在下一次提交中(除非我们更改配置)。

我们需要使用 git add 命令将文件的更改包括到我们的下一次提交中。

新增一个文件

git add <file>

同时新增所有东西:

git add -A

上面第四部分的屏幕截图中的文件名是红色的——这意味着它们是未暂存的文件。未暂存的文件不会包含在你的提交中。

我们需要使用 git add 来包括这些文件:

resim-6
现在使用 git add 命令将绿色的文件暂存了

重要提示:git add 命令不会更改仓库,并且直到我们使用 git commit 时,更改才会保存。

6. Git commit

这可能是最常用的 Git 命令。在开发过程的一些特定的点(可能在处理特定任务或问题之后),我们希望保存更改。

Git commit 就像在开发过程中设置检查点一样,如果需要,你可以稍后再返回。

我们还需要写一条简短的消息来解释我们在源代码中开发或更改的内容。

git commit -m "commit message"

重要提示Git commit 只在本地保存你的更改

7. Git push

提交更改后,接下来要做的就是将更改发送到远程服务器。Git push 将你的提交上传到远程仓库。

git push <remote> <branch-name>

但是,如果分支是新创建的,则还需要使用以下命令上传分支:

git push --set-upstream <remote> <name-of-your-branch>

或者

git push -u origin <branch_name>

重要提示Git push 只上传已提交的更改

8. Git pull

git pull 命令用于从远程仓库获取更新。此命令是 git fetchgit merge 的组合。这意味着,当我们使用 git pull 时,它将从远程仓库(git fetch)获取更新,并立即在本地应用最新更改(git merge)。

git pull <remote>

这个操作会导致冲突,你需要手动解决。

9. Git revert

有时我们需要撤消所做的更改。有多种方法可以在本地或远程撤消更改(取决于我们需要什么),但是我们必须谨慎使用这些命令,以避免不必要的删除。

撤消提交的一种更安全的方法是使用 git revert。要查看我们的提交历史,首先我们需要使用 git log-oneline

resim
master 分支的提交历史

然后,我们只需要填写要撤消的提交的哈希值即可:

git revert 3321844

你会看到屏幕如下所示——按 shift + q 退出:

resim-2

Git revert 命令将撤消给定的提交,但是将创建一个新的提交,而不删除旧的提交:

resim-3
新的“撤销”提交

使用 git revert 的优点是它不会触及提交历史。这意味着你仍然可以查看历史记录中的所有提交,甚至是已撤销的提交。

这里的另一项安全措施是,除非我们将它们推送到远程仓库,否则一切都会在我们的本地系统中发生。这就是为什么 git revert 是更安全的并且是撤消提交的首选方法。

10. Git merge

当你在分支中完成开发,并且一切正常,最后一步是将分支与主分支(dev 或 master)合并。这里可以使用 git merge 命令。

Git merge 将用于开发新功能的分支(feature branch)及其所有提交返回给 dev 或 master 分支。重要的是要记住,首先需要切换到要与 feature branch 合并的特定分支上。

例如,当你要将 feature branch 合并到 dev 分支中时:

首先,你应该切换到 dev 分支:

git checkout dev

在合并前,你需要更新本地 dev 分支:

git fetch

最后,把 feature branch 合并到 dev 分支:

git merge <branch-name>

提示:在合并分支之前,请确保你的 dev 分支具有最新版本,否则你可能会遇到冲突或其他不必要的问题。

这些是我日常编程中遇到的 10 个最常用的 Git 命令。有关 Git 的更多信息,我将在以后的单独文章中进行解释。

如果你想了解有关 Web 开发的更多信息,请随时在 YouTube 上关注我

感谢你阅读本文!

原文:10 Git Commands Every Developer Should Know,作者:Cem Eygi