Git 和 GitHub - 完整指南 - 第 1 章:Git 入门
如果你开发网站、移动应用或编写任何类型的代码,使用版本控制系统是个好主意。
最流行、使用最广泛的版本控制系统是GitHub。
如今,任何专业开发人员或设计师都需要知道如何使用 Git 和 Github。
Git
Git 使您能够记录项目的不同版本,并允许您回溯检查项目的先前状态。
GitHub
Github 是一项在线服务,可让您与全世界分享您的代码,还允许您与不同的开发人员合作。
第 1 章:Git 基础
- 什么是 Git?
- Git 设置
- 终端基础知识
- 创建第一个存储库
- 进行第一次提交
- 查看历史记录
什么是 Git?
Git 是一个分布式版本控制系统。不熟悉 Git 的朋友可能会觉得这个解释不太清楚。
为了使其更简单一些,版本控制或者您可能还听到有人说源代码控制是一个记录文件/项目更改的系统,然后您以后可以调用该文件/项目的任何特定版本。
换句话说,您可以回到过去并获取项目的先前状态,甚至将其与当前状态进行比较。
对于熟悉游戏的人来说,版本控制的概念类似于保存文件。你通常会在完成一项任务后保存游戏,因为你不想重复操作,以免在后续过程中失败。另一个有用的功能是,它允许你随时返回到该保存文件,并按照你保存时的状态进行游戏。这就是版本控制背后的基本思想。
要真正体会 Git 的实用性,你必须先想想自己该如何手动完成这类工作。假设你一直在开发一个网站,并且已经完成了大约一半的工作。目前为止,你对项目进展很满意,所以保存了所做的更改。你可以将此文件夹命名为网站的版本 1。
假设第二天你想在网站上尝试一些新东西,这需要改变前一天所做的所有工作或部分工作。但是,你仍然希望保留之前的工作,以防万一出现问题。为了方便起见,你可以复制版本 1 的文件夹,并将其命名为版本 2,依此类推……
这不仅繁琐,管理起来也很麻烦,还会占用大量存储空间,尤其是在处理大型项目时。所以,这并非最高效的处理方式。这就是版本控制系统诞生的原因。
版本控制允许您对项目的当前状态进行快照,这意味着它将项目的所有不同版本保存在一个目录中。
有许多版本控制系统,但最流行的是 Git。
Git 的优势之一是协作,即能够让不同的开发人员在同一个项目上协作。最常见的方式是通过 Github,这是一个在线服务,你可以在那里托管你的项目。Github 是一个可共享的平台,每个人都可以在这里工作并查看你的项目。Github 将在后续章节中讨论……
我们说过 Git 是一个分布式版本控制系统。通常来说,版本控制系统有两种类型:集中式系统和分布式(或去中心化)系统。
集中式版本控制系统只有一个服务器,其中包含所有不同版本的项目,以便开发人员进行协作。这种版本控制方式有其缺点。
缺点
- 如果没有网络连接,您将无法访问版本
- 如果服务器损坏,您将丢失所有版本
分布式版本控制系统允许您在不同的计算机和服务器上本地保存项目的版本,项目的每个副本都是所有数据的完整备份。
优点
- 如果服务器损坏,您仍然可以在本地存储完整的项目数据。
- 您不需要网络连接即可保存项目版本。
Git 的工作原理
为了在项目中使用 Git,首先需要初始化它。假设我们有一个名为 My-Website 的文件夹,里面有几个用于我们网站的不同文件。
Git 初始化后,会创建一个名为.git的文件夹,如何进行 Git 初始化将在后面讨论……
一旦创建了 .git 文件夹,放置 .git 文件夹的整个目录就变成了一个仓库。有时简称为repo。repo 是你想要用 Git 跟踪的项目的容器。
现在我们可以跟踪整个目录中文件的更改了。所有更改都会被 Git 识别。
.git 文件夹所在目录之外/之上所做的任何更改都不会被跟踪。
现在假设我们要将一个新文件添加到仓库中,例如一个名为script.js的 JavaScript 文件,并且希望将此版本添加到项目的历史记录中。我们可以通过使用commit来实现这一点,它实际上允许我们创建快照并将项目的当前状态添加到历史记录中。
为了更好地解释这个概念,我们再来一张图。假设这条线代表项目开发的历史或时间线。在开始任何工作之前,我们处于项目的初始阶段。当我们开始做一些工作并想要设置项目状态时,我们必须进行一次提交。在完成一些工作之后,我们会向项目中添加更多文件,并再次进行提交,将状态保存在历史记录中。
现在,我们已经创建了项目开发的历史记录。将来,我们可以随时回溯到项目之前的任何状态。实际上,我们可以进行任意次数的提交。
图中的线称为分支,或者更准确地说,称为主分支
Git 设置
为了正确设置所有内容并遵循指南,我们需要一个终端和一个文本编辑器。
我推荐的文本编辑器是 Visual Studio Code,你可以在这里找到并下载VS_Code
,下载和安装相对简单。
要查找和下载 Git,您可以访问https://git-scm.com/ 我们可以在 GitBash 终端中输入以下内容并按 Enter/回车键来查看 Git 的版本:git --version
终端基础知识
当你打开GitBash时,默认当前目录是用户的文件夹。
要检查这一点,您可以使用命令:pwd
要在目录之间导航,我们可以使用命令:cd
例如,要从用户目录导航到桌面,您可以输入以下命令:cd Desktop
为了返回目录,您可以使用以下命令:cd ..
您可以使用以下命令向上移动多个目录:cd ../..
现在我们在桌面目录中,为了创建一个文件夹,我们使用以下命令:mkdir
我们使用此命令后跟要创建的文件夹的名称。例如:mkdir myFolder
您可以使用命令在文件夹内导航:cd myFolder
使用 GitBash,您无需输入完整的文件夹名称“myFolder”。您可以输入起始字符,然后按TAB键,GitBash 会自动完成。
要创建文件,我们使用以下命令:touch
例如,我们可以通过输入以下内容在 myFolder 目录中创建一个文件:touch index.html
您可以使用以下命令查看目录中存在哪些文件:ls
要重命名文件,我们使用以下命令:mv。mv命令
会采用原始名称,后跟新名称。 例如:mv index.html about.html
要复制文件,我们可以使用以下命令:cp cp
命令采用要复制的文件的名称,后跟要放置它的目录。 例如:cp index.html .. 这会将文件放置在桌面目录中。
与任何文件系统一样,您不能将与现有文件同名的文件放置在该文件夹中
要删除文件,我们可以使用以下命令:rm。
此命令后跟要删除的文件名。
例如:rm about.html
要删除文件夹,我们可以使用以下命令:rm -rf。
此命令后跟要删除的文件夹名称。
例如:rm -rf myFolder/
要清除终端的内容,请使用以下命令:clear
- pwd :显示当前所在的目录
- cd :在目录之间导航
- mkdir :创建文件夹
- touch:创建文件
- ls :可以查看目录中存在哪些文件
- mv:重命名文件
- cp :复制文件
- rm:删除文件
- rm -rf:删除文件夹
- clear——清除终端
创建第一个存储库
要创建我们的第一个存储库,我们首先需要打开 GitBash 并在我们的桌面目录中创建一个名为 gitProject 的文件夹。
要打开 Visual Studio Code 以及我们创建的文件夹,请使用以下命令:code gitProject
Visual Studio Code 现在将在 gitProject 目录中打开。现在我们需要在 gitProject 目录中创建一个名为 index.html 的文件。
我们还可以使用 VS-Code(Visual Studio Code)创建文件
正如我们之前所说,为了创建一个 git 仓库,我们需要做的第一件事就是执行git 初始化
我们通过输入第一个 Git 命令来执行此操作:git init
正如你所见,当我们执行 git 初始化时,项目目录中会创建一个名为 .git 的新文件夹。如果你注意到目录中的文件也变成了绿色
如果您没有看到 .git 文件夹,可能是因为 Visual Studio Code 未设置显示该文件夹。您可以前往 VS-Code 中的设置进行更改。如果更改后仍然看不到该文件夹,请重新启动文本编辑器。
到目前为止,我们有一个名为 .git 的新文件夹,文件状态也变为绿色,但我们的文件尚未设置为被 git 跟踪。文件右侧的“U”可以证明这一点。这意味着我们的文件未被跟踪。我们可以使用另一个经常使用的 git 命令来检查这一点:git status
我们稍后会讨论很多 git 命令,但对于这里未涵盖的特定命令,可以在 git 命令后使用--help
参数进行探索。 例如:git init --help
进行第一次提交
是时候回顾整个周期了,也就是从未跟踪文件到我们提交为止。一个文件/项目会经历几个阶段,但请记住,通常有两个主要阶段:UNTRACKED和TRACKED。
- 已跟踪:上次快照中的文件。
- 未跟踪:上次快照中不存在的文件。
下面我们可以看到文件经历的阶段以及用于改变文件状态的命令:
如上所示,我们还有另一个 git 命令,用于将文件置于暂存状态,这意味着我们的文件现在可以提交了。要将文件添加到暂存区域,我们使用以下命令:git add。
命令后跟要添加到暂存状态的文件。
例如:git add index.html style.css
暂存文件后,我们可以使用以下命令检查文件状态:git status。
我们也可以使用以下命令从暂存状态中删除文件:git rm --cached。
此命令后跟要从暂存状态中删除的文件名。
例如:git rm --cached index.html
现在,我们可以进行第一次提交了!
要进行提交,我们使用 git 命令:git commit -m "placeholder"。git
commit 命令要求我们创建一条描述提交的消息,这就是引号中间的内容。
信息应该简短且具有描述性。
你可能会惊讶地看到 git 回复了一条消息“请告诉我你是谁”,并要求你运行一些必要的命令。之所以显示这条消息,是因为 git 需要知道你是谁,因为它会追踪哪个开发人员创建了项目文件的快照。
我们首先要为 git 设置我们的名字。
输入以下命令:git config --global user.name John接下来,我们需要为 git 设置我们的电子邮件地址。你可以使用真实的邮箱地址,
也可以像我们这里一样使用一个虚构的邮箱。
输入以下命令:git config --global user.email john@gmail.com
在提交之前,我们必须检查用户名和电子邮件地址是否正确,可以使用以下命令进行检查。
要检查用户名,请使用以下命令:git config --global user.name;
要检查电子邮件地址,请使用以下命令:git config --global user.email
你可能以为提交后就存储了项目的副本。但其实不然!
每次提交时,Git 都会拍摄文件在特定时刻的状态,并存储对该快照的引用。这是使用 Git 的优势之一。
我们已经介绍了使用 git 时文件经历的阶段或周期,我们已将我们的姓名和电子邮件地址提供给 git,以便它知道我们是谁,并且我们执行了第一次提交,我想是时候继续了......
查看历史记录
检查我们项目的历史记录是一项宝贵的资产,特别是随着时间的推移,回顾以前的工作对开发人员来说非常有用。
想象一下,你正在开发一个项目,有大量文件需要修改,这时你使用git add命令,然后添加需要添加的文件。逐个添加文件名可能会非常繁琐,尤其是在有 20 多个文件需要暂存的情况下。另一种一次性添加所有插入和修改文件的方法是使用以下命令:git add .。在命令末尾添加 . ,将选中所有已插入或修改的文件。
添加新文件并对现有文件进行修改后,我们需要使用git add 命令准备提交。提交后,我们可以使用以下命令查看提交历史记录:git log
日志的输出显示了我们所做的提交。首先要注意的是“提交”旁边的一串奇怪的字符。这些奇怪的字符实际上是本次提交的唯一标识符。
接下来我们看到的是(Head -> master),它是一种指针,但这稍后再讨论……
在其下方,我们看到的是“作者”,即提交者,后面是提交的日期和时间
。 最后,我们看到的是本次提交的消息。
但是假设你已经做了很多提交,并且你想查看它们全部,那么这么长的输出会使导航变得困难,这就是为什么有另一种方法可以总结使用git log
返回的日志 ,这个命令会给我们一个更短的输出:git log --oneline
这肯定比以前更好的输出,并且使我们更容易导航和理解我们所做的提交。
本章关于 Git 和 Github 的内容到此结束。希望你喜欢。
鏂囩珷鏉ユ簮锛�https://dev.to/ifierygod/git-and-github-the-complete-guides-chapter-1-23cp