实验目的:
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.1 安装GIT
1.2 初始配置Git
(三)从头创建仓库
1.运用 cd d:/切到d盘运用makedir指令创建se2020-git-course/new-git-project文件夹并切换到其下,然后使用git init初始化生成仓库。
2.运用git clone 命令克隆现有仓库
3.切换进入克隆好的工程运用git status察看当前仓库状态
(四)git log
1.运用git log查看该仓库下所有commit信息
2.运用git log --oneline命令得到更加简洁直观的输出
3.git log --stat命令:显示commit中更改的文件或添加删减的行数
4.git log -p:来查看文件的实际更改选项
5.git show 查看单一commit命令
(五)git add & git commit & git diff
1.先用cd命令转向new-git-project文件夹下,分别创建index.html,css/app.css,js/app.js文件,然后用git status查看git仓库
2.运用git add命令将index.html,css/app.css,js/app.js加入缓存区并再次查看git status状态
3.提交git commit命令运行代码编辑器,输入一条信息,然后再次使用git status命令查看
4.git commit -m:绕过编辑器直接提交消息
5.git diff:查看之前修改了文件什么信息
6.gitignore:首先加入一个word文档并用git status查看,然后新建.gitignore将该文档加入屏蔽名单中
(六)标签、分支
1.git tag标签:输入 git tag -a v1.0打开代码编辑器输入一条标签信息Ready for content,然后用git tag查看仓库内所有标签信息,然后使用git log查看仓库信息
2.git tag -d v1.0:运用该命令删除标签
3.git branch:查看该仓库下的分支情况
4.创建并切换分支,用git branch sidebar创建sidebar分支,然后git checkout切换到sidebar并用git status查看仓库状态
5.将分支切换到master上,再使用git branch -d sidebar命令删除sidebar分支,再用git br查看仓库分支情况
6.添加界面颜色,修改app.css文件内容并提交commit信息为set background color for page,并使用git log查看
7.选择设置背景颜色前一条commit,使用 git branch sidebar定位该消息产生分支并用git log查看
8.切换到master分支并修改标题,然后添加新信息Improve site heading for SEO,然后git log --oneline --graph --all查看所有分支的git log
(七)合并
1.git reset --hard HEAD^重定位head位置,然后使用git merge sidebar合并分支,提示冲突
2.打开index.html文件,根据合并产生的提示符,修改其内容,然后再次合并,提示修改成功
(八)撤销更改
1.git commit --amend修改最近的文件信息
2.git revert 还原之前的commit ee1032
3.git reset 指令清楚commit ee1032
实验总结与体会:
在实验的过程中,遇到了许多的错误,例如将命令输出,对编译器的配置未成功,以及如何查看退出显示仓库信息等等,但是我都一一找到了解决的办法,自己动手百度,找到问题的关键所在,重新再试几次,就会抵达成功。我觉得这次Git实验能够大大提高我们的思维逻辑能力和编程能力,为后来的学习奠定基础。
思考题:
阅读维基百科和百度百科 的Git词条,总结分布式分布式版本控制系统的核心机理
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。分布式的版本控制就是每个人都可以创建一个独立的代码仓库用于管理,在自己的机器上根据不同的开发目的,创建分支,修改代码,提交代码,并通知所有开发人员,速度更快、更灵活,两个开发者之间的冲突也更容易解决。