关于后端:Git-版本控制系统的完整指南

11次阅读

共计 3598 个字符,预计需要花费 9 分钟才能阅读完成。

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

看完如果感觉有帮忙,欢送 点赞、珍藏、关注

正文完
 0