首页 > 其他分享 >Git 版本控制系统的完整指南

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

时间:2024-02-23 23:23:06浏览次数:29  
标签:指南 文件 Git index 控制系统 添加 提交 暂存

什么是 Git?

Git 是一个流行的版本控制系统。它是由 Linus Torvalds 于 2005 年创建的,自那时以来由 Junio Hamano 维护。

它用于:

  • 跟踪代码更改
  • 跟踪谁做出了更改
  • 编写协作

Git 做什么?

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

使用 Git

  1. 在文件夹上初始化 Git,使其成为一个仓库
  2. Git 现在会创建一个隐藏的文件夹,以跟踪该文件夹中的更改
  3. 当文件被更改、添加或删除时,它被视为已修改
  4. 你选择要暂存的已修改文件
  5. 已暂存的文件被提交,这会促使 Git 存储文件的永久快照
  6. Git 允许你查看每个提交的完整历史。
  7. 你可以恢复到以前的任何提交。
  8. 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

在主分支上

尚未提交

待提交的更改:

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

新文件: index.html

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

Git 添加多个文件

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

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

# hello-world
Hello World repository for Git tutorial
This is an example repository for the Git tutorial on https://www.w3schools.com

This repository is built step by step in the tutorial.

一个基本的外部样式表(bluestyle.css):

body {
background-color: lightblue;
}

h1 {
color: navy;
margin-left: 20px;
}

并更新 index.html 以包括样式表:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<p>This is the first file in my new Git Repo.</p>

</body>
</html>

现在将当前目录中的所有文件添加到暂存环境:

git add --all

使用 --all 而不是单个文件名将会将所有更改(新文件、修改过的文件和已删除的文件)都暂存。

git status

在主分支上

尚未提交

待提交的更改:

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

新文件: README.md

新文件: bluestyle.css

新文件: index.html

现在所有 3 个文件都已添加到暂存环境中,我们准备进行第一次提交。

如何添加新文件到 Git 仓库:从创建本地仓库到添加文件

添加 Git 新文件

你刚刚创建了你的第一个本地 Git 仓库。但它是空的。

所以让我们添加一些文件,或使用你喜欢的文本编辑器创建一个新文件。然后保存或移动它到你刚刚创建的文件夹中。

在这个示例中,我将使用一个简单的 HTML 文件,类似于这样:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>

<h1>Hello world!</h1>
<p>This is the first file in my new Git Repo.</p>

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

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

ls
index.html

ls 会列出目录中的文件。我们可以看到 index.html 存在。

然后我们检查 Git 的状态,看它是否是仓库的一部分:

git status

在主分支上

尚未提交

未跟踪的文件:
(使用 "git add ..." 来将其包含在将要提交的内容中)
index.html

没有添加到提交但未跟踪的文件存在(使用 "git add" 来跟踪)

现在 Git 已经意识到这个文件了,但还没有将它添加到我们的仓库中!

Git 仓库文件夹中的文件可以处于以下 2 种状态之一:

  • 已跟踪 - Git 已知道的文件,并已添加到仓库
  • 未跟踪 - 存在于你的工作目录中,但尚未添加到仓库

当你首次将文件添加到空仓库时,它们都是未跟踪的。要让 Git 跟踪它们,你需要将它们暂存,或者将它们添加到暂存区。

我们将在下一章中介绍暂存区。

Git 提交

既然我们已经完成了工作,我们准备从暂存转到提交我们的仓库。

添加提交可以跟踪我们的进度和更改。Git 将每个提交视为更改点或“保存点”。如果你发现 bug 或想要做更改,它是项目中可以返回的一个点。

当我们提交时,应该始终包含一条消息。

通过为每个提交添加清晰的消息,对于自己(和其他人)来说,很容易看到发生了什么以及何时发生的。

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

commit 命令执行提交,-m "message" 添加一条消息。

已暂存环境已被提交,消息是:"Hello World 的首次发布!"

不经过暂存提交

有时,当你进行小的更改时,使用暂存环境似乎是浪费时间。可以直接提交更改,跳过暂存环境。-a 选项会自动将每个已跟踪的更改文件添加到暂存区。

让我们对 index.html 进行小更新:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>

</body>
</html>

并检查我们仓库的状态。但这次,我们将使用 --short 选项以更紧凑的方式查看更改:

git status --short
 M index.html

注意:短状态标志是:

  • ?? - 未跟踪的文件
  • A - 已添加到暂存
  • M - 修改过的文件
  • D - 已删除的文件

我们看到我们预期的文件已被修改。所以让我们直接提交它:

git commit -a -m "用新行更新了 index.html"
[master 09f4acd] 用新行更新了 index.html
 1 file changed, 1 insertion(+)

注意:通常不建议跳过暂存步骤。

跳过暂存步骤有时会导致包含不需要的更改。

Git 提交日志

要查看仓库的提交历史,可以使用 log 命令:

git log

这将显示仓库的提交历史:

commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803 (HEAD -> master)
Author: w3schools-test 
Date:   Fri Mar 26 09:35:54 2021 +0100

    用新行更新了 index.html

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

    Hello World 的首次发布!

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:指南,文件,Git,index,控制系统,添加,提交,暂存
From: https://www.cnblogs.com/xiaowange/p/18030537

相关文章

  • containerd环境搭建指南
    目录一.container概述1.什么是containerd2.为什么要学习containerd二.基于yum方式安装containerd1.获取软件源2.查看yum源中containerd软件版本3.安装containerd的4.查看containerd的版本信息5.设置containerd开机自启动6.查看containerd的客户端和服务端的版本信息三.基于二进制......
  • 互联网人的副业探索指南
    这几年的就业环境和经济形势,身处其中的各位想必深有体会,年后刚开工不久,技术群里大家都在讨论如何做副业提高收入来源的话题。其实关于如何做副业,如何开源节流开启个人职业生涯的第二曲线,已经不是什么新鲜话题,只不过在经济下行和裁员降薪潮之下,大家才能感同身受,意识到副业对个人......
  • 迅为RK3568开发板驱动开发指南-输入子系统
     《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动(第十三篇输入子系统)视频,帮助用户快速入门,大大提升研发速度。 第13篇-输入子系统目录第1篇驱动基础篇第2篇字符设备基础第3篇并发与竞争第4篇高级字符设备进阶第5篇中断第6篇平台总线第7篇设备树......
  • 洛谷题单指南-贪心-P1478 陶陶摘苹果(升级版)
    原题链接:https://www.luogu.com.cn/problem/P1478题意解读:题目的本质是任务安排问题,有n件任务,每件任务耗时不同,在一定的时间内,如何安排任务使得完成的任务越多越好。解题思路:对于这类问题,贪心策略是优先完成容易的。回到摘苹果问题,要优先摘耗费力气小的,如果高度够不着,就跳过,......
  • [GIT] 修改之前的commit提交的作者信息和邮箱信息 [转]
    1总体思路更改之前提交的作者信息和邮箱信息需要进行两步操作。首先,使用gitfilter-branch命令进行历史重写然后,使用gitpush--force将更改推送到远程仓库。Step1使用gitfilter-branch进行历史重写在终端或命令行中执行以下命令:gitfilter-branch--env-filte......
  • 洛谷题单指南-贪心-P1106 删数问题
    原题链接:https://www.luogu.com.cn/problem/P1106题意解读:如何删数,让剩下的数最小,贪心选择问题。解题思路:先看样例:1754384第1次遍历:删掉7,剩下15438第2次遍历:删掉5,剩下1438第3次遍历:删掉4,剩下138第4次遍历:删掉8,剩下13,即为结果所以,贪心策略如下:1、遍历每一个数,如果前一......
  • 史上最全的生产环境中MySQL调优指南
    性能监控使用showprofile查询剖析工具,可以指定具体的type使用performanceschema来更加容易的监控mysql使用showprocesslist查看连接的线程个数,来观察是否有大量线程处于不正常的状态或者其他不正常的特征schema与数据类型优化数据类型的优化合理使用范......
  • Git Install
    GitInstall‍[root@localhostsoftware]#wgethttps://mirrors.edge.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz[root@localhostsoftware]#[root@localhostsoftware]#tar-zxfgit-2.43.0.tar.gz[root@localhostsoftware]#cdgit-2.43.0/[root@localh......
  • 基于Mamdani模糊神经网络的调速控制系统simulink建模与仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      基于Mamdani模糊神经网络的调速控制系统是一种结合模糊逻辑与神经网络技术的智能控制方法,旨在提高调速系统的性能。随着工业技术的不断发展,对调速控制系统的性能要求也越来越高。......
  • git
    创建一个新的分支同时切换到新创建的分支gitcheckout-bnew-branch或gitswitch-cnew-branch合并两个分支(将B合并到A)gitmergeB//操作在A分支(连线模式)gitrebaseA//操作在B分支(复制模式)/*注意:当你知道你所需要的提交记录(并且还知道这些提交记录的哈希......