什么是 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
在主分支上
没有提交
待提交的更改:
(运用 “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
,重视后即可获取最新文章推送
看完假如觉得有帮助,欢迎 点赞、收藏、重视