实验一 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 指令
实验记录:
1)实验内容以及结果的截图
2)实验过程中发生的问题与解决
1、安装git
首先从官网下载git,安装时选择默认选项就可以安装成功
2、初始配置git ,git init git status指令
(1)初始配置git
设置git用户名和邮箱

(2)git init命令
首先需要创建一个空的GIT仓库,同时克隆现有的仓库

(3)git status命令
此命令可以告诉我们此时仓库的状态,取决于你的文件状态、工作目录和仓库。

因为是在空目录中输入的,命令故显示的结果为No commits yet为尚未有任何提交
3、掌握git log ,git add ,git commit,git diff 指令
(1)git log命令
git log命令用于显示仓库中所有commit的信息,默认情况下会显示仓库中每个 commit 的:SHA、作者、日期、消息

git log --oneline命令
此命令显示的结果的方式为:
每行显示一个commit;
显示commit的SHA的前7个字符;
显示commit的消息

git log --stat命令
此命令会:
显示被修改的文件;
显示添加/删除的行数;
显示一个摘要,其中包含修改/删除的总文件数和总行数

git log -p命令
此命令会:
显示被修改的文件;
显示添加/删除的行所在的位置;
显示作出的实际更改

(2)git show命令
默认显示:
commit;作者;日期;commit消息;补丁消息
且此命令只显示一个commit的信息

同时git log -p/git log show可以加想要查看的commit的SHA即可查看特定的信息
(3)git add命令
首先创建三个文件,创建完成后使用git status进行查看

可以看到三个文件都没有被跟踪,使用git add进行跟踪,此时跟踪了index.html
(4)git commit命令
此命令会取出暂存区的文件并保存到仓库中

(5)git diff命令
此命令用来查看已经执行但是尚未 commit 的更改,可以在进行提交之前告诉我们已对文件进行了什么样的更改
此命令会显示:
已经修改的文件;
添加/删除的行所在的位置;
执行的实际更改

4、 掌握git tag git branch指令
(1)git tag命令
建议使用带注释的标签,因为它们包含了大量的额外信息,例如:
标签创建者;
标签创建日期;
标签消息
在命令(git tag -a v1.0) 中,使用了-a选项。该选项告诉 git 创建一个带注释的标签。如果你没有提供该选项(即git tag v1.0),那么它将创建一个轻量级标签。

输出结果显示的 tag: v1.0 ,这就是标签,标签与 commit 相绑定。因此,该标签与 commit 的 SHA 位于同一行。
删除标签
通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:
$ git tag -d v1.0
总结:git tag命令用来标记特定的 commit 。当添加新的 commit 时,标签不会移动。故此命令向最近的 commit 添加标签且如果提供了 SHA,则向具体的 commit 添加标签。
(2)git branch命令
此命令用来与 git 的分支进行交互:
列出仓库中的所有分支名称;
创建新的分支;
删除分支
列出所有分支名称:

创建新的分支:

但这仅仅进行了创建,我们还要进行切换;要在分支之间进行切换,我们需要使用 git 的 checkout 命令。
这个命令的工作方式是:从工作目录中删除 git 跟踪的所有文件和目录(git 跟踪的文件存储在仓库中,因此什么也不会丢失),之后转到仓库,并提取分支指向的 commit 所对应的所有文件和目录。

活跃分支:提示符将显示活跃分支,活跃分支名称旁边会显示一个星号。

删除分支:在删除分支时,无法删除当前所在的分支;若你要删除的分支上有commit则不能进行删除,此时需要强制删除,用大写D来代替小写d进行删除。

5、掌握git revert 指令
此命令用于还原之前创建的 commit:
将撤消目标 commit 所做出的更改;
创建一个新的 commit 来记录这一更改
首先将两个分支进行合并,合并完后进行git log --oneline --graph --all

其次使用git revent来进行还原,此处还原的是sidebar分支

实验过程中发生的问题与解决:
1.在进行commit时,在进入之后不知道怎样保存并退出,每次强制退出总会使提交不成功,解决方法为输入:wq。
2.在进行指令相关的操作时,总是会让我在此设置name和email,但每次设置都不成功,解决方法为在目录下找到.git,进入目录后找到config文档,点开文档在其中输入[user] name=? email=?,再此文档中输入自己的信息即可完成配置不成功的问题。
3.再删除分支时总是说我删除失败,后来才发现我删除的是我所在的分支,解决方法是只需要使用checkout换到另一个分支。
实验总结与体会
Git是一个版本管理的工具,它拥有很强的性能。在本次实验中,我们由浅逐渐到深的学习了这个软件的一些基本的操作,通过每个不联系的代码学习了Git这个工具的一些功能。这次的实验让我真正的认识到了Git这个工具的便捷之处,它可以帮助人们有效的、快捷的、高效的控制从很小到非常大的项目的版本。Git可以使一个项目在某处产生分支来进行不同的修改,同时如果项目发生错误它也可以使项目快速的回到上一个版本从而避免错误。这次实验只学习了Git部分的功能,但这也需要课后不断的去练习才能熟练的掌握。
思考题:
阅读维基百科和百度百科的Git词条,总结分布式版本控制系统的核心机理
分布式版本控制系统不需要服务器端软件的支持,使源代码的发布和交流及其方便。每个开发者可以通过克隆来拷贝一个Git仓库到本地机器中,开发者可以根据不同的目的创建不同的分支来修改代码,当需要多个人进行协作时,只用将开发者之间的修改推送给对方。分布式版本控制系统没有中央服务器,每个人的电脑上都是一个完整的版本库,因此不需要联网,可以离线进行修改。且系统具有很强的安全性,因为在每个人的电脑都有一个完整的版本库,若一个人的发生错误只需从其他人那里复制一个,而集中式版本控制系统的中央服务器损坏则所有人都没法使用。
浙公网安备 33010602011771号