实验一 GIT 代码版本管理
实验目的:
1)了解分布式分布式版本控制系统的核心机理
2) 熟练掌握git的基本指令和分支管理指令
实验内容:
1)安装git
2)初始配置git ,git init git status指令
3)掌握git log ,git add ,git diff 指令
4) 掌握git tag git branch,git commit 指令
5)掌握git revert 指令
实验记录:
从头创建仓库
在对 Git 仓库进行 commit 或执行任何其他操作之前,需要一个实际存在的仓库。要使用 Git 新建一个仓库,我们将使用 git init 命令。
创建项目目录
创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。如下图所示
mkdir -p 2020-git-course/new-git-project&& cd $_ 创建目录
git init 初始化仓库
终端会显示 git init 命令正在运行。该命令会在当前目录下初始化生成一个空的 Git 仓库。
克隆现有仓库
在克隆任何内容之前,确保命令行工具已定位于正确的目录下。改变工作目录如下图所示
输入命令 git clone,然后输入你要克隆的 Git 仓库的路径。实验使用以下 URL :https://github.com/udacity/course-git-blog-project 。
完整命令是:
git clone https://github.com/udacity/course-git-blog-project。克隆过程会显示出来如图
git命令
git log
克隆course-git-blog-project 仓库后,使用命令行转到项目的目录下。可以看到 git status 的输出结果是:"nothing to commit, working directory clean"。
git log 命令用于显示仓库中所有 commit 的信息修改的时间和作者和修改的内容。如下图
git log --oneline
git clone --oneline 命令:
-
每行显示一个 commit
-
显示 commit 的 SHA 的前 7 个字符
-
显示 commit 的消息
git log --stat
显示 commit 中更改的文件以及添加或删除的行数
git log -p
命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch
$ git log -p
-
此命令会向默认输出中添加以下信息:
-
显示被修改的文件
-
显示添加/删除的行所在的位置
-
显示做出的实际更改
git add
进入到new-git-project
创建 HTML 文件
首先,创建一个叫做 index.html 的文件,并添加一些起始代码,建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件。
在终端上运行以下命令,使用 git add 将 index.html 添加到暂存区:
$ git add index.html如下图
终端显示 index.html 现在位于"Changes to be committed"(暂存)分类下
commit
git config --global core.editor配置代码编辑器。由于编辑器路径输入错误,所以出现提示进而纠正。如下图
下图中由于未设置用户名和邮箱所以出现提示,进而重新设置。
一切正确之后 git commit,提交到仓库。
git diff
此命令会显示:
-
已经修改的文件
-
添加/删除的行所在的位置
-
执行的实际更改
可以在进行提交之前告诉我们已对文件进行了什么样的更改。
在 index.html
中,将标题从"Expedition"改为"Adventure"。保存文件,然后在终端上运行 git diff如下图
git tag
使用 git tag 命令与仓库的标签进行交互,输入以下命令
git tag -a v1.0
命令将打开代码编辑器,并等待你为标签输入信息
git branch
-
列出仓库中的所分支名称
-
创建新的分支
-
删除分支
git branch
命令用来与 git 的分支进行交互,当前分支为master
创建分支
创建一个叫做"sidebar"的分支
git branch sidebar创建了 sidebar
分支,但是它还不是当前分支,目前提示符显示的是当前分支master。要使用该sidebar分支,你需要切换到该分支
git checkout
运行该命令将:
从工作目录中删除 git 跟踪的所有文件和目录(git 跟踪的文件存储在仓库中,因此什么也不会丢失)
转到仓库,并提取分支指向的 commit 所对应的所有文件和目录
git merge
用来合并 git 分支
要合并 sidebar
分支,确保你位于 master
分支上,并运行:
$ git merge sidebar
git revert
此命令:将撤消目标 commit 所做出的更改,创建一个新的 commit 来记录这一更改。下图中更改了最近一个SHA。
git reset
可以将 HEAD 和当前分支指针移到目标 commit,清除 commit,将 commit 的更改移到暂存区,取消暂存 commit 的更改。
git 根据所使用选项来判断是清除、暂存之前 commit 的更改,还是取消暂存之前 commit 的更改。这些选项包括:使用 --hard
选项清除 commit,使用 --soft
选项将 commit 的更改移至暂存区,使用 --mixed
选项取消暂存已被 commit 的更改
实验总结与体会
本次实验是验证性的实验,内容很丰富,首先安装了git然后介绍了很多git 指令和相关操作,能挖掘很多潜在的隐藏信息。在实验过程中,按照实验步骤一步步来,有不懂的地方直接百度搜索就可以解决,基本没有问题,虽然过程很多。让我对git分布式版本控制系统有了一定的认识。
思考题
阅读维基百科和百度百科 的Git词条,总结分布式分布式版本控制系统的核心机理。
Git 是用于 Linux内核开发的版本控制工具,不必服务器端软件支持。
工作区:你当前进行工作的区域,是文件系统中的目录
暂存区: 记录了下次提交将要保存仓库中的文件
仓库:记录了某次提交的完整状态和内容。
流程就是将工作区中的文件,先保存到暂存区中,当执行commit的时候,将暂存区中的文件保存到仓库中,如果暂存区没有内容,就不能commit。