前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 速查表:初学者必备的 12 个 Git 命令

Git 速查表:初学者必备的 12 个 Git 命令

作者头像
Se7en258
发布2023-05-18 15:08:26
4310
发布2023-05-18 15:08:26
举报
文章被收录于专栏:Se7en的架构笔记

本文译自:Git Cheat Sheet: 12 Essential Git Commands For Beginners 原文链接:https://initialcommit.com/blog/Git-Cheat-Sheet-Beginner

本系列共有三篇文章,本文是第一篇:

  • Git Cheat Sheet: 12 Essential Git Commands For Beginners(本文)
  • Git Cheat Sheet: 12 Essential Git Commands For Intermediate Users
  • Git Cheat Sheet: 14 Essential Git Commands For Experts

介绍

Git 是世界上最流行的版本控制系统(VCS),很难想象开发人员没有它会是什么样子。现在,绝大多数开发人员,包括个人和大公司,都在项目中选择 Git。

对于初学者来说,第一个问题就是如何使用 Git?

在本文中,我将介绍 12 个对初学者特别重要的 Git 命令。您可以将本篇文章作为 Git 命令的速查表,以便在以后查找使用。

现在让我们开始吧。

git init

这可能是你创建新项目时要使用的第一个命令。它用于初始化一个新的、空的 Git 仓库。使用这个命令的语法非常简单:

代码语言:javascript
复制
git init

执行 git init 命令后,Git 会在当前目录下创建一个名为 .git 的子目录,这个子目录包含 Git 用来跟踪版本控制所需的所有文件和目录。具体来说,包括以下文件和目录:

  • HEAD 文件:存储当前位置指针,指向当前工作区的分支。
  • config 文件:存储仓库的配置信息,比如远程仓库的 URL ,你的邮箱和用户名等。
  • description 文件:供 Gitweb 使用,显示仓库的描述。
  • hooks 目录:保存在执行 Git 命令时触发的自定义 hooks 脚本。
  • info 目录:用于排除提交规则,与 .gitignore 功能类似。他们的区别在于.gitignore 这个文件本身会提交到版本库中去,用来保存的是公共需要排除的文件;而 info/exclude 这里设置的则是你自己本地需要排除的文件,他不会影响到其他人,也不会提交到版本库中去。
  • objects 目录:Git 的对象数据库。
  • refs 目录:存储着分支和标签的引用。
  • index 文件:用于追踪文件的更改。
  • logs 目录:用于记录操作信息。

git clone

通常情况下,你已经有一个现有的 Git 仓库(有时托管在像 GitHub 或 Bitbucket 这样的网站上),并希望将其复制到本地计算机。在这种情况下,你需要使用的命令是 git clone。简单来说,这个命令用于创建现有仓库的副本或克隆:

代码语言:javascript
复制
git clone [url-to-existing-git-repo]

git status

Git 会持续监控您的项目工作目录中的变化,这些变化可能涉及创建新文件、添加文件以进行跟踪、删除文件、更改文件权限、修改文件名或内容等。您可以使用 git status 命令,查看 Git 在某个特定时间所记录的变化情况。

代码语言:javascript
复制
git status

git add

一旦在您的工作目录中对文件做出更改并通过 git status 命令确认更改完全正确,就可以将这些变化添加到 Git 的暂存区中。

您可以使用 git add 命令将单个文件添加到暂存区:

代码语言:javascript
复制
git add <your-file-name>

或者,如果您有多个更改的文件,您可以使用 -A 选项将它们全部添加到暂存区:

代码语言:javascript
复制
git add -A

另外,您也可以使用单个点号代替 -A 选项:

代码语言:javascript
复制
git add .

git commit

一旦您的更改已经被暂存,就可以使用 git commit 命令将这些更改保存到 Git 仓库中。一个 Git commit 是一组文件更改,作为一个单元存储在 Git 中。

在此过程中,您应该提供一个清晰明确的提交信息,以便其他开发者能够轻松理解其目的:

代码语言:javascript
复制
git commit -m "some useful comment about your change"

一个常见的经验法则是使用祈使语气编写提交信息。

下面是一张图片,帮助您更好地理解 Git 中更改是如何从工作目录流转到暂存区,最终提交到仓库的:

git branch

您可以将 Git 分支看作是一系列提交或开发历程。实际上,分支名称只是一个指向特定 commit ID 的标签。每个 commit ID 都链接回其父 commit ID,形成了一条开发历史链。

git branch 命令就像一把瑞士军刀,它可以展示当前 Git 仓库中的所有分支。带有星号标记的分支是您当前所在的分支:

代码语言:javascript
复制
git branch

要创建一个新分支,只需使用以下命令并指定您的新分支名称即可:

代码语言:javascript
复制
git branch <new-branch-name>

git checkout

使用 git checkout 命令可以在不同的分支之间进行切换,它会更新您的工作目录以反映所选分支的最新版本:

代码语言:javascript
复制
git checkout <name-of-branch>

此外,git checkout 命令还可以同时创建一个新分支并切换到该分支:

代码语言:javascript
复制
git checkout -b <name-of-branch>

git merge

那么,您已经在新分支上进行了多次提交,完成了您的工作。接下来该怎么做呢?

通常情况下,这些更改应该合并回主代码分支(默认情况下通常称为 master 分支)。我们可以使用 git merge 命令来完成合并操作。

代码语言:javascript
复制
git merge <branch-to-merge-from>

请注意,git merge 命令将指定分支中的提交合并到当前所在的分支中。因此,在运行该命令之前,您需要首先切换到要合并的分支上。

git push

到目前为止,我们运行的所有命令都只影响了本地环境。现在,是时候通过使用 git push 命令将您最新提交的更改推送到远程仓库(通常托管在 GitHub 和 Bitbucket 等网站上)与其他开发者分享了:

代码语言:javascript
复制
git push <remote> <name-of-branch>  

例如:

代码语言:javascript
复制
git push origin master

在该示例中,我们将 master 分支推送到名为 origin 的远程仓库(在 Git 中是远程仓库的默认名称)。

一旦您推送了更改,其他团队成员就可以看到它们、审查它们并将它们拉取到他们自己的本地 Git 仓库副本中。

git pull

git pull 命令与 git push 命令正好相反。您可以使用它将其他开发者所做的更改下载到您的本地仓库中:

代码语言:javascript
复制
git pull <remote> <name-of-branch>

上述命令将下载远程仓库中指定分支的新提交,并尝试将它们合并到您本地的该分支副本中。实际的命令将类似以下示例,使用 origin 远程仓库和 master 分支:

代码语言:javascript
复制
git pull origin master

有趣的是,git pull 命令实际上只是 git fetch 命令和 git merge 命令的组合。其中,git fetch 命令用于将远程分支下载到本地仓库,而 git merge 命令用于将已下载的分支合并到本地副本中。

git log

如果您想查看 Git 分支上所有提交的历史记录,可以使用 git log 命令。git log 命令按时间顺序显示所有提交的有序列表,包括作者、日期和提交信息,从最新到最旧:

代码语言:javascript
复制
git log

若要按从旧到新的顺序列出提交,请使用 --reverse 选项:

代码语言:javascript
复制
git log --reverse

如果您是一个视觉化的人,可以尝试使用以下命令选项,在终端中显示提交历史的图形化表示:

代码语言:javascript
复制
git log --all --graph --decorate

这对于查看分支在开发过程中如何分叉和合并回来非常有用。

git stash

有时候,您在工作目录中修改了一些文件,但是意识到需要先处理其他事情。然而,您又不想丢失已经完成的工作。在这种情况下,可以使用 git stash 命令将所有未提交的更改保存在工作目录中,以便稍后可以找回它们。

代码语言:javascript
复制
git stash

使用 git stash 命令后,您的工作副本将被清理(所有更改将消失)。但是不要担心,它们并没有丢失,git stash 只是将这些更改放在临时存储中,您可以使用 git stash pop 命令找回它们:

代码语言:javascript
复制
git stash pop

在这里,pop 子命令将重新应用存储在 stash 中的最后一个状态,以便您可以继续上次的工作。

总结

在本文中,我讨论了初学者必备的 12 个 Git 命令,您可以将本篇文章作为 Git 速查表,在以后的参考中使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Se7en的架构笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • git init
  • git clone
  • git status
  • git add
  • git commit
  • git branch
  • git checkout
  • git merge
  • git push
  • git pull
  • git log
  • git stash
  • 总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档