实验目的:
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
下载Windows版本的Git,按照实验指导安装过后,可在桌面右击鼠标找到快捷方式
2)初始配置Git
初次配置Git
在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。
# 设置你的 Git 用户名
git config --global user.name ""
# 设置你的 Git 邮箱
git config --global user.email ""
# 确保 Git 输出内容带有颜色标记
git config --global color.ui auto
# 对比显示原始状态
git config --global merge.conflictstyle diff3
git config --list
Git与代码编辑器
Atom Editor 设置
git config --global core.editor "atom --wait"
Sublime Text 设置
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -n -w"
注意C:\Program Files\Sublime Text 3\sublime_text.exe 为你安装后sublime的地址
VSCode 设置
git config --global core.editor "code --wait"
3)从头创建仓库
创建的过程中可能涉及如下命令
ls - 用来列出文件和目录
mkdir - 用来新建目录
cd - 用来更改目录
rm - 用来删除文件和目录
pwd -列出当前目录
创建一个目录,叫做 se-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。
可在终端上运行以下命令:-mkdir -p se-git-course/new-git-project && cd $_
git init
克隆现有仓库
git stuas
4)git log
git log命令
git log --ontime
git log --p
git log 命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch,可以简写为 -p:
$ git log -p
git log --stat
The git log 命令有一个选项可以用来显示 commit 中更改的文件以及添加或删除的行数。
git show
git show 命令将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样。因此默认情况下,git show 会显示:
commit
作者
日期
commit 消息
补丁信息
5)git add& git commit&git diff
创建文件夹和文件
首先,创建一个叫做 index.html 的文件,并添加一些起始代码:
尽管尚未对 git 执行任何特殊操作,但是它已经在观察这个目录(因为它是 git 项目),并且知道我们创建了几个新的文件。git status命令的输出同样十分简洁地告诉我们 git 没有跟踪这些文件。
暂存文件
在终端上运行以下命令,使用 git add 将 index.html 添加到暂存区:
$ git add index.html
提交commit
index.html 文件已暂存。我们再暂存另外两个文件。现在我们可以运行以下命令:
$ git add css/app.css js/app.js
或者使用 git add .
git diff 和 gitingnore
要在 git 中提交 commit,你需要使用 git commit 命令,但是先别运行这条命令。运行这条命令将会打开你在第一节课配置的代码编辑器。
6)标签、分支
git tag标签
进入,前面建立的 new-git-project 项目文件夹中,
该项目到目前为止的 git log 输出结果:
git tag 命令、验证和删除
可以通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:
$ git tag -d v1.0
向以前的commit添加标签
运行git tag -a v1.0将为最近的 commit 添加标签。但是如果你想向仓库中很久之前的 Commit 添加标签呢?
只需提供要添加标签的 commit 的 SHA 即可!
先查询历史SHA git log --oneline,查找已经commit 的SHA
7)合并
主题分支(例如sidebar)的作用是让你做出不影响master分支的更改。当你在主题分支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更改,则可以将该分支上的更改与其他分支上的更改合并。
将分支组合到一起称为合并。
git 可以自动将不同分支上的更改合并到一起。这种分支和合并功能正是 git 的强大之处!你可以在分支上做出小的或大的更改,然后使用 git 合并这些更改。
合并指令
合并冲突
8)撤销更改
更改上一个commit消息
向commit中添加忘记的文件
还原commit
总结与体会
本次的实验对于git有了一个初步的认识,虽然是验证性实验,但是对于巩固理论学习到的相关知识具有很大帮助。在实验期间,我遇到了,默认编辑器设置失败的问题、建立仓库时master配置错误的问题。通过上网搜索、询问同学使得这些问题得以解决。在刚接触到一门崭新的开发工具时,可以在某些视频网站上搜索相关的教程观看,这样对于接触新的开发程序会有一个大体的熟知度。
思考
分布式版本管理系统注重的是项目整体而不是单个文件或代码。对每个不同的本地用户来说在本地读取数据,可自行拥有全部版本不需要连接主机,不需要服务端,通过合并和信息追踪来实现版本控制,方便快速交流和发布。分布式的特点避免了集中式因为核心部分出错导致系统整体瘫痪的尴尬局面,易于后期的维护和迭代升级。从外实现了开发工程的模块化,使得部分功能能很好的替换、更改、添加、删除。