实验一 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 安装git
在git官网上下载git windows 版本 根据自己的电脑选择下载版本 安装
2.1 初始化git,掌握git init git status指令
# 设置你的 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
2 从头创建仓库
创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。
可在终端上运行以下命令:- mkdir -p se2020-git-course/new-git-project && cd $_
运行结果如图
使用git init命令在当前目录下初始化生成一个空的Git仓库
克隆现有仓库
终端上运行的命令 git clone,然后传入要克隆的 Git 仓库的路径
输入命令 git clone,然后输入你要克隆的 Git 仓库的路径。完整命令:
git clone https://github.com/udacity/course-git-blog-project
3)Git status 操作:
git status 是了解 Git 的核心所在。它将告诉我们 Git 正在考虑什么,以及 Git 所看到的我们仓库的状态。当你第一次使用 Git 时,你应该一直都要使用 git status 命令.你应该习惯于运行任何其他命令之后,都运行下该命令。这样可以帮助你了解 Git 的工作原理,并避免你对文件 / 仓库状态做出不正确的推论。
运行结果如图:
5)掌握git log ,git add ,git diff 指令
- 在终端运行 git log 命令
git log 命令用于显示仓库中所有 commit 的信息。
默认情况下,该命令会显示仓库中每个 commit 的:
SHA
作者
日期
信息
这里要注意 要会使用less中的快捷键,能让你更好地浏览所有信息
还有git log --oneline 能让展现出来的结果更短,节省大量空间
2.git log --stat
The git log 命令有一个选项可以用来显示 commit 中更改的文件以及添加或删除的行数。该选项为 --stat(stat 是“统计信息 statistics”的简称):
运行 git log --stat截图如下
git log 命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch,可以简写为 -p:
$ git log -p运行结果如下:
而当同时使用这两种命令时,结果显示,二者都显示,且修改信息在下
处理太多滚动操作
实际上有两种实现方式显示特定 commit 的详情
git log -p fdf5493
通过提供 SHA,git log -p 命令将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息。
新命令 git show
git show fdf5493
3)掌握git log ,git add ,git diff 指令
添加新文件,并使用git status 检查状态
进入到new-git-project
创建 HTML 文件
2)建立 js 和css 文件夹,并在文件下分别建立 app.js 和 app.css 文件,文件内容可为空
这里要注意,要用cd指令前往指定路径
可用看出,尽管尚未对 git 执行任何特殊操作,但是它已经在观察这个目录(因为它是 git 项目),并且知道我们创建了几个新的文件
在终端上运行以下命令,使用 git add 将 index.html 添加到暂存区:
$ git add index.html
运行 git add 命令没有任何输出
输出结果中现在出现了全新的区域:"Changes to be committed"区域!这一新的"Changes to be committed"区域显示了位于暂存区的文件!目前只显示了 index.html 文件,因此暂存区只有这个文件。继续这一思路,如果我们现在提交 commit,则只有 index.html 文件会被提交。
index.html 文件已暂存。我们再暂存另外两个文件。
现在我们可以运行以下命令:
$ git add css/app.css js/app.js
提交 Commit
要在 git 中提交 commit,你需要使用 git commit 命令
如果尚未配置,可安装subline 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的地址。
注意,你的编辑器应该会打开并且会出现以下界面:
在首行输入Initaial commit ,文本 "Initial commit" 并不特殊,只是第一个 commit 的常用消息。如果你想使用其他消息,完全可以!
完成提交
现在保存文件并关闭编辑器窗口(只关闭面板/标签页还不够,你还需要关闭 git commit 命令打开的代码编辑器窗口)。现在回到终端,你应该能看到类似于以下内容的界面
如果看到了以上界面,则代表你已经提交成功
第二个 commit - 添加更改
现在提交第二个 commit!将以下内容添加到 index.html 中的 body 标记中:
Expedition
it status!
现在做以下操作
1) 使用 git add 命令将文件移到暂存区,并使用 git status 验证文件是否位于暂存区。
2) 提交第二个 commit 吧!使用 git commit 命令提交 commit,并添加提交说明 Add header to blog。
git diff!
此工具可以在进行提交之前告诉我们已对文件进行了什么样的更改
4)掌握git tag git branch,git commit 指令
git tag 命令
我们将使用 git tag 命令与仓库的标签进行交互
保存并退出编辑器后,命令行上什么也不会显示。那么如何知道已经向项目中添加了标签呢?只需输入 git tag,命令行会显示仓库中的所有标签。
删除标签
如果将标签消息中的某个字打错了,或标签名称打错了(输入 v0.1,而不是 v1.0),如何修正这个错误?最简单的方法是删除这个标签并重新创建。
git branch 命令
git branch 命令用来与 git 的分支进行交互:
$ git branch
它可以用来:
列出仓库中的所有分支名称
创建新的分支
删除分支
要创建分支,只需使用 git branch 并提供要创建的分支对应的名称。因此,如果你想创建一个叫做"sidebar"的分支,只需运行以下命令:
$ git branch sidebar
虽然你创建了 sidebar 分支,但是它还不是当前分支,目前提示符显示的是当前分支master。要使用该sidebar分支,你需要切换到该分支。
git checkout 命令
注意,在进行 commit 时,该 commit 将添加到当前分支上。虽然我们创建了新的 sidebar 分支,但是没有向其添加新的 commit,因为我们尚未切换到该分支。如果我们现在进行 commit 的话,该 commit 将添加到 master 分支,而不是 sidebar 分支。我们已经在演示中看到这一情况,要在分支之间进行切换,我们需要使用 git 的 checkout 命令。
提示符中的分支信息很有用,但是最清晰的查看方式是查看 git log 的输出结果。就像我们需要使用 --decorate 选项来显示 git 标签一样,我们也需要该选项来显示分支。
$ git log --oneline
提示符将显示活跃分支。但这是我们对提示符进行的特殊自定义,如果你使用的是不同的计算机,判断活跃分支的最快速方式是查看 git branch 命令的输出结果。活跃分支名称旁边会显示一个星号。
主题分支(例如 sidebar)的作用是让你做出不影响 master 分支的更改。当你在主题分支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更改,则可以将该分支上的更改与其他分支上的更改合并。
将分支组合到一起称为合并。
掌握git revert 指令
总结与体会
这次实验不是很困难,验证性实验,但很繁琐,需要注意的细节很多,比如所操作的路径等问题,一不注意就会遇到困难
我认为学了本门课程,对我以后从事程序员职业有很大的帮助,可以更好地丰富我的经验
思考题:
阅读维基百科和百度百科 的Git词条,总结分布式分布式版本控制系统的核心机理
本地客户机进行操作,离线工作,快速。
安全性高,每个人电脑里都有完整的版本库,一个人的电脑换了复制其他人的一份就可以了。原子性提交,提交不会被打断(git)。工作模式非常灵活(传统的集中式工作流 + 特殊工作流 + 特殊工作流和集中式工作流的组合)。
缺点: 缺少权限管理、命令复杂混乱