实验一 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)实验内容结果的截图
1.初始配置git:
在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。
2.git init,git status指令:
git init是初始化仓库,git status 是获取当前状态,会经常使用
3.git log ,git add ,git diff 指令:
(1)git log:
先在非仓库中克隆一个提供的URL,防止嵌套,之后进入该仓库进行操作,
git log命令用于显示仓库中所有commit的信息。
默认会显示SHA,作者,日期,消息
git log命令下有很多选项,如git log--oneline用来更改仓库的显示方式:
git log --strt,此命令会:1.显示被修改的文件。2.显示添加/删除的行数。3.显示一个摘要,其中包含修改/删除的总文件数和总行数
git -p命令具有一个可用来显示对文件作出实际更改的选项。处理太多滚动的操作,特定查找:git log -p (查找的名称)
git log -w可以忽略空格变化。
(2)git add:
这是修改文件的暂存区。
首先,创建一个叫做 index.html 的文件,建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件
可以看出,git 没有跟踪这些文件,因此用git add将这三个文件放到暂存区
之后git commit编辑提交,下面是配置和编辑:
可以看出VScode和这个编辑器不一样,系统会自动保存最后保存的编辑器。
并且只有将文件添加到暂存区add,之后commit才会有效果。
(3)git diff
命令可以用来查看已被加入但是尚未提交的更改。
4.git tag ,git branch,git commit 指令:
(1)git tag标签
标签与 commit 相绑定。因此,该标签与 commit 的 SHA 位于同一行。使用命令 (git tag -a v1.0
) 中,使用了 -a
选项。该选项告诉 git 创建一个带注释的标签(包括标签 创建者,标签创建日期,标签消息等)。如果你没有提供该选项(即 git tag v1.0
),那么它将创建一个轻量级标签。
创建过程如下所示:
git tig命令用来标记特定的 commit 。当添加新的 commit 时,标签不会移动。如 git tag -a v1.1 527a39 可以在特定位置标记标签。否则会添加到当前最近的commit添加。
(2)git branch分支:
命令功能是:1.列出仓库中的所有分支名称。2.创建新的分支。3.删除分支
要创建分支,只需使用 git branch
并提供要创建的分支对应的名称+位置名称SHA。因此,如果你想创建一个叫做"sidebar"的分支,只需运行以下命令:$ git branch sidebar
要在分支之间进行切换,我们需要使用 git 的 checkout
命令。这个命令的工作方式是:从工作目录中删除 git 跟踪的所有文件和目录(git 跟踪的文件存储在仓库中,因此什么也不会丢失),之后转到仓库,并提取分支指向的 commit 所对应的所有文件和目录
特殊指示符"HEAD"具有一个指向 sidebar 分支的箭头。它指向 sidebar 是因为 sidebar 分支是当前分支,即活跃分支
若想删除分支,无法删除当前所在的分支。用 git branch -d 分支。修改过的分支默认不会被删除,需要强制删除。
(3)git commit提交:
见3中git add之后的操作。
5.git revert 指令:
将撤消目标 commit 所做出的更改,创建一个新的 commit 来记录这一更改
2)实验过程中发生的问题与解决
1.修改配置时新配置会覆盖之前的旧配置,如果无法修改,可以在根目录下编辑.gitconfig文件修改。
2.仓库不能嵌套,因此创建时不能再仓库的文件下创建新的仓库
3.未提交的分支不能切换,要将当前分支完成后才能切换到新的分支。
4.无法删除当前所在的分支,并且使用修改过的分支默认不能被删除,需要强制删除用-D。
5.git commit之前必须先用add放到暂存区。
6.git status可以查看到当前工作状态,方便解决出现的问题。
实验总结与体会:
Git是一个版本管理的工具,利用仓库可以保存用户对某个项目所进行的修改历史记录,如果修改错误可以回到之前的版本,并且在某处可以产生不同分支,对此项目中的不同文件进行不同的修改,这些不同的分支在不同分支中才可见,不同分支可以合并,若产生冲突可以由用户自行决定保留的内容。
Git解决了用户在修改了文件后导致原来文件丢失或分不清时间先后顺序的问题,分支操作可以在同一项目中保存不同的想法,最后合并即可。
思考题:
阅读维基百科和百度百科 的Git词条,总结分布式分布式版本控制系统的核心机理
答:它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快。Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。