什么是 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,重视后即可获取最新文章推送

看完假如觉得有帮助,欢迎 点赞、收藏、重视