10 分钟内掌握 Git

2025-05-24

10 分钟内掌握 Git

啊,好久不见了,回来啦。嗯,看来我现在可以更规律一点了。
好吧,那就回到博客上。

目录:

1.暂存
2.提交
3.恢复
4.分叉
5.分支
6.合并和冲突
7.获取/拉取更改
8.推送更改
9.变基

Git 如何工作?

Git 是一个灵活的工具,允许开发人员通过终端使用简单的命令来跟踪代码更改并管理他们的项目。

Git 的核心是用于存放项目的仓库。仓库可以存储在本地或网站上,例如 GitHub/Gitlab/Bitbucket。Git 允许用户存储多个不同的仓库,并独立跟踪每个仓库。

在整个开发过程中,项目有多个保存点,称为提交。提交历史记录包含所有提交,即开发期间在项目中实施的更改。提交允许您将代码回滚或快进到提交历史记录中的任何提交。GitHub 使用 .patch 和 .diff

文件来比较和应用更改。Git 使用 SHA-1 哈希值来引用提交。每个唯一的哈希值都指向存储库中的特定提交。Git 使用哈希值创建树状结构,以便轻松存储和检索数据。

每个 Git 项目中的文件都会经历几个阶段:
工作目录。已修改但未跟踪且尚未准备好提交的文件。
暂存目录。将已修改的文件添加到暂存环境意味着它们已准备好提交。
已提交。暂存区域的文件快照保存在提交历史记录中。
下图展示了 Git 的基本工作流程:

图片描述

1.分期:

如果希望 Git 跟踪你对某个文件所做的更改,你必须将其添加到暂存区。Git 可以识别你对文件的修改,但除非你将其暂存,否则不会跟踪它。暂存区提供了一层安全保障,让你可以在提交更改之前查看它们。

文件必须位于暂存区,之后才能提交,也就是在主分支上执行。你可以运行以下命令来检查 Git 跟踪了哪些文件:

git status

要将文件添加到暂存区,请使用以下语法:

git add [filename]

将 [filename] 语法替换为文件的实际名称。
如果您改变主意,可以从暂存区移除文件。要取消暂存文件,请使用以下语法:

git rm --cached [filename]

2. 做出承诺:

提交代表着你工作的一个保存点,是代码在特定时间点的快照。将文件添加到暂存区意味着它们已准备好提交。

要检查是否有任何文件准备提交,请运行:

git status

这里我们看到三个文件已准备好提交。要提交它们,请使用以下语法:

git commit -m "Notes about the commit"

每个提交都应该在 -m 标志后指定一个小描述,这将帮助您稍后了解提交的内容。

输出包含提交并说明更改的内容。

您可以通过运行以下命令检查您的提交历史记录:

git log

3.恢复:

如果您在项目开发过程中犯了错误,或者出于任何原因想要撤销某个提交,git revert 可以帮您实现。git revert 命令可以撤销某个提交,即撤消您为了从主分支移除更改而做出的提交。
其语法如下:
git revert [commit_ID]
git reset 命令会永久地将您带回到开发中的某个时间点。如果您想重新添加在该时间点之后添加的所有文件和更改,它们都会被取消暂存。

警告:仅当您完全确定要撤消/删除部分代码时才使用 git reset,因为此操作是不可逆的。

语法是:
git reset [commit_ID]
指定 --hard 标志将删除未暂存的文件,并且无法将其恢复。

4.分叉:

复刻 (fork) 是对现有代码库的完整复制,允许您在不影响原始项目的情况下进行更改和实验。复刻是某人对现有项目提出修改建议的一种方式,或者,如果代码是开源的,复刻也可以成为您自己项目的起点。

如果您想为项目提出更改或错误修复,您可以分叉存储库,进行修复,然后向项目所有者发出拉取请求。

下图说明了分叉的工作原理:

图片描述

要 fork 存储库,请按照以下步骤操作:

  1. 登录您的 GitHub/GitLab 帐户。
  2. 访问 GitHub 上的存储库页面并单击 Fork 选项。
  3. 等待分叉过程完成。完成后,你的 GitHub 帐户中将出现该仓库的副本。
  4. 下一步是从代码部分获取存储库 URL 并将存储库克隆到本地计算机。
  5. 使用以下语法克隆存储库:git clone [repository URL]在 [repository URL] 语法的位置输入 URL。

5.分支:

分支是 Git 的一项功能,允许开发人员在原始代码的副本上工作,以修复错误或开发新功能。通过在分支上工作,开发人员在想要实施更改之前不会影响主分支。

主分支通常代表代码的稳定版本,即已发布或已发布的版本。因此,如果新功能和新代码不稳定,则应避免将其添加到主分支。

分支创建了一个隔离的环境来尝试新功能,如果您喜欢它们,可以将它们合并到主分支。如果出现问题,您可以删除该分支,主分支保持不变。

分支有利于协作编程,并允许每个人同时处理自己的部分代码。

下图是 Git 中分支的直观表示:
图片描述

在 Git 中创建新分支的语法是:
git branch [branch-name]
输入分支的名称来代替 [branch-name] 语法。

6.合并与冲突:

git merge 命令允许开发人员在独立分支上开发新功能或修复错误后,将其更改与主分支合并。合并更改意味着将其实施到 master 分支。
开发人员可以使用 git merge 输入更改,而无需将工作发送给项目中的所有人。
要查看现有分支,请运行:
git branch -a
在 Git 中查看现有分支。
在本教程中,我们创建了一个名为 feature-1 的独立分支。要将 feature-1 分支与 master 分支合并,请按照以下步骤操作:

  1. 切换到主分支。git merge 命令要求你位于合并接收分支。运行以下命令切换到主分支:git checkout master
  2. 切换到主分支后,使用以下语法合并您的更改:git merge [branch-name]

输入分支名称代替 [branch-name] 语法。
将分支合并到主分支。Git
会自动将您的更改输入到主分支,所有参与项目的人都可以看到。
但是,有时您可能会遇到合并冲突。
例如,当您在另一个分支上工作时,如果有人决定在主分支上进行编辑,就会发生冲突。发生这种冲突是因为您想将更改合并到主分支,而主分支现在与您的代码副本不同。

7.获取/拉取更改:

git fetch 和 git pull 命令均用于从远程仓库检索更改。
区别在于 git fetch 仅从远程仓库检索元数据,而不会将任何内容传输到本地仓库。它仅会告知您自上次拉取以来是否有任何更改。
在以下示例中,git fetch 告知我们远程仓库中有一些更改,但本地仓库中没有任何变化

运行 git fetch 来查看远程是否有可用的更改。
另一方面,git pull 还会检查远程仓库中是否有新的更改,并将这些更改合并到本地仓库。
因此,git pull 用一个命令完成两项操作——git fetch 和 git merge。该命令会下载对当前分支所做的更改,并更新本地仓库中的代码。

8.推动变革:

git push 命令的作用与 git pull 相反,它允许您共享更改并将其发布到远程存储库中。

当您在本地进行更改并希望将其推送到远程存储库时,请运行:

git push

如果您在本地创建了一个新分支,但该分支在远程不存在,则该命令在尝试推送更改时将返回错误:

推送远程不存在的分支时出错。Git
在输出中提供了解决方案。运行输出中指定的命令,将分支推送到上游:

在 Git 中将分支推向上游。

9.重新定基:

创建分支时,Git 会创建现有代码的副本,供您进一步开发。有时,您可能需要合并主分支中的新更改,以跟上整体开发进度。
变基操作涉及将主分支中的新更改实施到功能分支中。这意味着 Git 会重现主分支中的新更改,并在功能分支的顶端创建提交。

请按照以下步骤重新设置您的功能分支:

  1. 使用 git checkout 移动到功能分支。语法如下:git checkout [branch-name]
  2. 运行以下命令来重新设置分支:git rebase master
文章来源:https://dev.to/dumboprogrammer/git-in-10-mins-519g
PREV
10 个免费学习网站
NEXT
如何在没有经验的情况下在 Freelancer.com 上进行自由职业