首页 > 运维 > linux运维 > 正文

Git 版本控制系统的完整指南

星夢妙者
发布: 2025-07-22 10:50:34
原创
597人浏览过

git 版本控制系统的完整指南

什么是 Git?Git 是一个广受欢迎的版本控制系统。它由 Linus Torvalds 在 2005 年创建,并由 Junio Hamano 维护至今。

它用于:

  • 跟踪代码更改
  • 记录谁进行了更改
  • 协作开发

Git 能做什么?使用仓库管理项目:

  • 克隆项目以在本地副本上工作
  • 使用暂存和提交来控制和跟踪更改
  • 分支和合并以便在项目的不同部分和版本上工作
  • 将项目的最新版本拉到本地副本
  • 将本地更新推送到主项目

使用 Git 在文件夹上初始化 Git,使其成为一个仓库。Git 会创建一个隐藏的文件夹来跟踪该文件夹中的更改。当文件被更改、添加或删除时,它被视为已修改。你可以选择要暂存的已修改文件。已暂存的文件被提交,这会促使 Git 存储文件的永久快照。Git 允许你查看每个提交的完整历史。你可以恢复到以前的任何提交。Git 不会在每个提交中存储文件的单独副本,而是跟踪每个提交中所做的更改!

切换平台:将焦点转向 GitHub、Bitbucket 或 GitLab。

为什么使用 Git?超过 70% 的开发者使用 Git!开发者可以从世界任何地方协同工作。开发者可以查看项目的完整历史。开发者可以还原到项目的早期版本。

什么是 GitHub?Git 与 GitHub 不同。

GitHub 提供使用 Git 的工具

GitHub 是世界上最大的源代码托管服务,自 2018 年起由 Microsoft 拥有。

在本教程中,我们将专注于使用 Git 与 GitHub。

Git 暂存环境:Git 的核心功能之一是暂存环境和提交的概念。

当你工作时,你可能会添加、编辑和删除文件。但无论何时你达到一个重要阶段或完成工作的一部分,都应该将文件添加到暂存环境。

已暂存的文件是准备提交到你正在工作的仓库的文件。不久后,你将更多地了解提交。

目前,我们已完成了对 index.html 的工作。所以我们可以将它添加到暂存环境中:

git add index.html

文件应该已被暂存。让我们检查状态:

git status

在主分支上

尚未提交

TTS Free Online免费文本转语音
TTS Free Online免费文本转语音

免费的文字生成语音网站,包含各种方言(东北话、陕西话、粤语、闽南语)

TTS Free Online免费文本转语音37
查看详情 TTS Free Online免费文本转语音

待提交的更改:

(使用 "git rm --cached ..." 来取消暂存)

新文件: index.html

现在该文件已被添加到暂存环境。

Git 添加多个文件:你还可以一次暂存多个文件。让我们向我们的工作文件夹添加 2 个文件。再次使用文本编辑器。

一个描述仓库的 README.md 文件(推荐用于所有仓库):

代码语言:markdown复制```markdown

hello-world

Hello World repository for Git tutorial This is an example repository for the Git tutorial on https://www.php.cn/link/0ab3906a724cfe5ba8b36e7c25d33491 This repository is built step by step in the tutorial.

<code>
一个基本的外部样式表(bluestyle.css):
<p>代码语言:css<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="<a href="https://www.php.cn/link/c9041cfd2a40932691855abd98fd219a">http://www.w3.org/2000/svg"><path</a> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制<code>css body { background-color: lightblue; } h1 { color: navy; margin-left: 20px; }</code></pre><p>并更新 index.html 以包括样式表:</p><p>代码语言:html<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制</code>html</p><title>Hello World!</title><link href="bluestyle.css" rel="stylesheet"></link><h1>Hello world!</h1><p>This is the first file in my new Git Repo.</p></p><pre class="brush:php;toolbar:false;"><code><p>现在将当前目录中的所有文件添加到暂存环境:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制```bash
git add --all</p><pre><code>
使用 `--all` 而不是单个文件名将会将所有更改(新文件、修改过的文件和已删除的文件)都暂存。

代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制```bash
git status</code></pre><p>在主分支上</p><p>尚未提交</p><p>待提交的更改:</p><p>(使用 "git rm --cached ..." 来取消暂存)</p><p>新文件: README.md</p><p>新文件: bluestyle.css</p><p>新文件: index.html</p><p>现在所有 3 个文件都已添加到暂存环境中,我们准备进行第一次提交。</p><p>如何添加新文件到 Git 仓库:从创建本地仓库到添加文件:</p><p>添加 Git 新文件:你刚刚创建了你的第一个本地 Git 仓库。但它是空的。</p><p>所以让我们添加一些文件,或使用你喜欢的文本编辑器创建一个新文件。然后保存或移动它到你刚刚创建的文件夹中。</p><p>在这个示例中,我将使用一个简单的 HTML 文件,类似于这样:</p><p>代码语言:html<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制```html</p><title>Hello World!</title><h1>Hello world!</h1><p>This is the first file in my new Git Repo.</p></code>
登录后复制

然后将它保存到我们的新文件夹中,命名为 index.html

让我们回到终端并列出当前工作目录中的文件:

代码语言:bash复制```bash ls index.html

<code>
`ls` 会列出目录中的文件。我们可以看到 `index.html` 存在。
<p>然后我们检查 Git 的状态,看它是否是仓库的一部分:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="<a href="https://www.php.cn/link/c9041cfd2a40932691855abd98fd219a">http://www.w3.org/2000/svg"><path</a> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制<code>bash git status</code></pre><p>在主分支上</p><p>尚未提交</p><p>未跟踪的文件:</p><p>(使用 "git add ..." 来将其包含在将要提交的内容中)</p><p>index.html</p><p>没有添加到提交但未跟踪的文件存在(使用 "git add" 来跟踪)</p><p>现在 Git 已经意识到这个文件了,但还没有将它添加到我们的仓库中!</p><p>Git 仓库文件夹中的文件可以处于以下 2 种状态之一:</p><ul><li>已跟踪 - Git 已知道的文件,并已添加到仓库</li><li>未跟踪 - 存在于你的工作目录中,但尚未添加到仓库</li></ul><p>当你首次将文件添加到空仓库时,它们都是未跟踪的。要让 Git 跟踪它们,你需要将它们暂存,或者将它们添加到暂存区。</p><p>我们将在下一章中介绍暂存区。</p><p>Git 提交:既然我们已经完成了工作,我们准备从暂存转到提交我们的仓库。</p><p>添加提交可以跟踪我们的进度和更改。Git 将每个提交视为更改点或“保存点”。如果你发现 bug 或想要做更改,它是项目中可以返回的一个点。</p><p>当我们提交时,应该始终包含一条消息。</p><p>通过为每个提交添加清晰的消息,对于自己(和其他人)来说,很容易看到发生了什么以及何时发生的。</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制</code>bash
git commit -m "Hello World 的首次发布!"
[master (root-commit) 221ec6e] Hello World 的首次发布!
3 files changed, 26 insertions(+)
create mode 100644 README.md
create mode 100644 bluestyle.css
create mode 100644 index.html</p><pre class="brush:php;toolbar:false;"><code><code>commit</code> 命令执行提交,<code>-m "message"</code> 添加一条消息。</p><p>已暂存环境已被提交,消息是:"Hello World 的首次发布!"</p><p>不经过暂存提交:有时,当你进行小的更改时,使用暂存环境似乎是浪费时间。可以直接提交更改,跳过暂存环境。<code>-a</code> 选项会自动将每个已跟踪的更改文件添加到暂存区。</p><p>让我们对 <code>index.html</code> 进行小更新:</p><p>代码语言:html<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="<a href="https://www.php.cn/link/c9041cfd2a40932691855abd98fd219a">http://www.w3.org/2000/svg"><path</a> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制<code>html <title>Hello World!</title> <link href="bluestyle.css" rel="stylesheet"></link> <h1>Hello world!</h1> <p>This is the first file in my new Git Repo.</p> <p>A new line in our file!</p></code></pre><p>并检查我们仓库的状态。但这次,我们将使用 <code>--short</code> 选项以更紧凑的方式查看更改:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制</code>bash
git status --short
M index.html</p><pre class="brush:php;toolbar:false;"><code>
注意:短状态标志是:</p><ul><li><code>??</code> - 未跟踪的文件</li><li><code>A</code> - 已添加到暂存</li><li><code>M</code> - 修改过的文件</li><li><code>D</code> - 已删除的文件</li></ul><p>我们看到我们预期的文件已被修改。所以让我们直接提交它:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="<a href="https://www.php.cn/link/c9041cfd2a40932691855abd98fd219a">http://www.w3.org/2000/svg"><path</a> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制<code>bash git commit -a -m "用新行更新了 index.html" [master 09f4acd] 用新行更新了 index.html 1 file changed, 1 insertion(+)</code></pre><p>注意:通常不建议跳过暂存步骤。</p><p>跳过暂存步骤有时会导致包含不需要的更改。</p><p>Git 提交日志:要查看仓库的提交历史,可以使用 <code>log</code> 命令:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制</code>bash
git log</p><pre class="brush:php;toolbar:false;"><code>
这将显示仓库的提交历史:</p><p>代码语言:bash<svg fill="none" height="16" viewbox="0 0 16 16" width="16" xmlns="<a href="https://www.php.cn/link/c9041cfd2a40932691855abd98fd219a">http://www.w3.org/2000/svg"><path</a> clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor" fill-rule="evenodd"></path></svg>复制```bash
commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803 (HEAD -> master)
Author: w3schools-test
Date:   Fri Mar 26 09:35:54 2021 +0100</p><pre class="brush:php;toolbar:false;"><code>用新行更新了 index.html</code>
登录后复制

commit 221ec6e10aeedbfd02b85264087cd9adc18e4b26 Author: w3schools-test Date: Fri Mar 26 09:13:07 2021 +0100

<code>Hello World 的首次发布!</code></pre><p>最后看完如果觉得有帮助,欢迎 点赞、收藏、关注</p></code>
登录后复制

以上就是Git 版本控制系统的完整指南的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号