实验目的:
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 指令
实验记录:
1.初次配置Git
设置用户名邮箱以及颜色标记
2.从头创建创建项目
创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。克隆现有仓库, 输入pwd确保终端的当前目录没有位于Git仓库中。输入命令 git clone,然后输入你要克隆的 Git 仓库的路径。实验使用以下 URL :https://github.com/udacity/course-git-blog-project 。并且还要通过git status来判断仓库状态与结果。
3.git log
转到course-git-project项目的目录下,输入git status,结果显示为“nothing to commit,working directory clean”,则是说明可以继续执行项目。git log 命令用于显示仓库中所有 commit 的信息,默认情况下,该命令会显示仓库中每个 commit SHA,作者,日期,消息,运行等。
git clone --oneline
此命令使输出结果更简短,并节省大量空间。其每行显示一个 commit,显示 commit 的 SHA 的前 7 个字符,显示 commit 的消息。
git log--stat
--stat 选项用于更改 git log 显示信息的方式。$ git log --stat此命令会:显示被修改的文件,显示添加/删除的行数,显示一个摘要,其中包含修改/删除的总文件数和总行数。
git log -p
git log 命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch,可以简写为 -p,运行该命令并查看显示结果。
git log –w
忽略空格变化
4. 添加新文件,并使用git status 检查状态
进入到new-git-project (注意不是blog目录) 创建 HTML 文件,创建一个叫做 index.html 的文件,并添加一些起始代码。建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,文件内容可为空。然后来检验状态。
提交第一个commit
第二个 commit - 添加更改
现在提交第二个 commit!将以下内容添加到 index.html 中的 body 标记中:
<header>
<h1>Expedition</h1>
</header>
并对其进行状态检测
git diff 此命令可以用来查看已被加入但是尚未提交的更改。
5.标签、分支
git tag 命令可以为 commit 添加标签,git tag -d v1.0可以删除标签。
分支交互
git branch 用来列出分支名称,创建新的分支以及删除分支。
活跃分支和删除分支
同时查看所有分支
6.合并
主题分支(例如 sidebar)的作用是让你做出不影响 master 分支的更改。当你在主题分支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更改,则可以将该分支上的更改与其他分支上的更改合并。将分支组合到一起称为合并。
合并commit信息
合并冲突
7.撤销更改
git commit --amend 该命令可以对最近一个提交的 commit 进行更改,重新提交commit 消息,是更改并不会创建新的 commit 。
使用 git revert 2840c7c将该条 commit 所做的修改撤消,并创建一个新的 commit 来记录更改。使用 git reset 命令将清除当前分支上的 commit.
实验总结与体会及问题
1.一开始对实验不了解,走了很多弯路,总是在各方面出现错误,严重的影响了时间与心情。但经过一段时间的摸索后,能够慢慢的完成实验,对各个指令也有了很多的了解,也渐渐的进入了状态。
2.在实验中有时候总是粗心大意,往往在一些细节上出现错误,单词拼写错误,找错路径等,其中在找sublime路径时找错了好多回。好久才正确完成。
3.在对于分支上添加颜色,新建侧栏这些问题由于html出现一点问题,所以没能完成。
4.实验极大的锻炼了自己的动手能力,在接受新知识的路上自己又有了一份新的收获。
5.以后做实验的时候要放平心态,积极认真并严谨的完成任务。
思考题
阅读维基百科和百度百科 的Git词条,总结分布式版本控制系统的核心机理
答:在本地工作目录中修改信息,使用git add将文件放入暂存区,然后git commit提交到仓库。每个开发者通过克隆在本地机器上
拷贝一个完整的Git仓库,直接在本机上获取数据,不必连线到主机端获取数据。版本库的本地存储,每台机器都是等价的,都有工作区
和版本库,任何两台机器都可通过相互交换各自的版本库来更新信息。