实验目的:
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)实验内容结果的截图
2)实验过程中发生的问题与解决
初次配置 Git
安装适合自己电脑的git版本,我用的是git 2.25.1版本的,并设置git用户名和邮箱,配置git代码编辑器,我用的是atom,截图如下所示。
创建项目目录
创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。
git init
在终端会输入 git init 命令,该命令会在当前目录下初始化生成一个空的 Git 仓库。
克隆现有仓库
在 Git 上进行克隆的方法是调用我们将在终端上运行的命令 git clone,然后传入要克隆的 Git 仓库的路径。
输入命令:git clone https://github.com/udacity/course-git-blog-project
git log
在终端运行git log用于显示仓库中所有 commit 的信息
git log --oneline
在终端运行git log --oneline用于更改仓库信息的显示方式
git log --stat
在终端运行git log --stat用来显示 commit 中更改的文件以及添加或删除的行数
git log -p
在终端运行git log -p用来显示对文件作出实际更改的选项
git add& git commit&git diff
1)创建一个叫做 index.html 的文件
2)建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件
用git status检查
在终端上运行git add index.html命令,使用 git add 将 index.html 添加到暂存区
git commit
现在做以下操作
1) 使用 git add 命令将文件移到暂存区,并使用 git status 验证文件是否位于暂存区。
2) 提交第二个 commit 吧!使用 git commit 命令提交 commit,并添加提交说明 Add header to blog。
git diff
git diff
命令可以用来查看已被加入但是尚未提交的更改。
gitignore
将某个文件保留在项目的目录结构中,但是确保它不会意外地提交到项目中,可以使用名称特殊的文件 .gitignore
git branch
git branch
命令用来与 git 的分支进行交互
创建分支
创建一个叫做"sidebar"的分支,只需运行以下命令:
$ git branch sidebar
要在分支之间进行切换,我们需要使用 git 的 checkout
命令。
$ git checkout sidebar
使用 --decorate
选项来显示 git 标签一样,我们也需要该选项来显示分支。
$ git log --oneline
你想删除分支,可以使用 -d
选项。下面的命令包含 -d
选项,告诉 git 删掉给出的分支(这里是"sidebar"分支)。
$ git branch -d sidebar
更改 1 - 添加页面颜色
确保位于 master
分支上,并向 css/app.css
添加以下内容:
body { background-color: #00cae4; }
保存文件,然后将该文件添加到暂存区,并将其 commit 到仓库。 commit 的内容可写: Set background color for page 通过git log 检查commit 记录
更改 2 - 添加侧栏
我们向页面上添加一个侧栏。
因此向该 commit 添加分支的命令是:
$ git branch sidebar SHA
更改 3 - 更改 master 上的标题
使用 git checkout
命令切换到 master
分支
合并
要合并 sidebar
分支,确保你位于 master
分支上,并运行:
$ git merge sidebar
更改最后一个 commit
你已经使用 git commit
命令提交了大量的 commit。现在,借助 --amend
选项,你可以更改最近的 commit。
$ git commit --amend
git revert
命令
现在我创建了一个包含一些更改的 commit,我可以使用 git revert
命令还原它
$ git revert <SHA-of-commit-to-revert>
git reset
命令
git reset
命令用来重置(清除)commit:
$ git reset <reference-to-commit>
实验总结与体会:
本次实验做了git版本管理的实验,以前只用过github来托管自己的代码,并不了解git还有版本控制的功能。在实验中开始遇到仓库冲突的问题,后来通过百度解决了问题。实验量比较大,所以花费的时间比较长。通过本次实验基本了解了git的原理以及掌握了git版本管理的一些基本操作,后面可以把git作为一个工具使用,用于版本管理。
思考题:
阅读维基百科和百度百科 的Git词条,总结分布式分布式版本控制系统的核心机理
DVCS 通过本地提交支持离线工作,这是由 DVCS 的操作方式决定的,这与集中式版本控制完全不同;
DVCS 比集中式系统更灵活,因为 DVCS 支持许多不同类型的工作流;
DVCS 比集中式版本控制系统快得多,因为大多数操作在客户机上进行,速度非常快。