实验一: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

下载Windows版本的Git,按照实验指导安装过后,可在桌面右击鼠标找到快捷方式

实验一:Git代码版本管理

2)初始配置Git

  初次配置Git

在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。

# 设置你的 Git 用户名

git config --global user.name "<Your-Full-Name>"

# 设置你的 Git 邮箱

git config --global user.email "<your-email-address>"

# 确保 Git 输出内容带有颜色标记

git config --global color.ui auto

# 对比显示原始状态

git config --global merge.conflictstyle diff3

git config --list

实验一:Git代码版本管理

实验一:Git代码版本管理

   Git与代码编辑器

    Atom Editor 设置

      git config --global core.editor "atom --wait"

    Sublime Text 设置

      git config --global core.editor "'C:Program FilesSublime Text 3sublime_text.exe' -n -w"

      注意C:Program FilesSublime Text 3sublime_text.exe 为你安装后sublime的地址

    VSCode 设置

      git config --global core.editor "code --wait"

实验一:Git代码版本管理

 3)从头创建仓库

创建的过程中可能涉及如下命令

  • ls - 用来列出文件和目录 

  • mkdir - 用来新建目录

  • cd - 用来更改目录

  • rm - 用来删除文件和目录

  • pwd -列出当前目录

  创建一个目录,叫做 se2020-git-course,在该目录中,创建另一个目录,叫做 new-git-project,使用 cd 命令移到 new-git-project 目录下。

  可在终端上运行以下命令:- mkdir -p se2020-git-course/new-git-project && cd $_

 实验一:Git代码版本管理

   git init

 实验一:Git代码版本管理

  克隆现有仓库

实验一:Git代码版本管理

实验一:Git代码版本管理

  git stuas

实验一:Git代码版本管理

4)git log

  git log命令

实验一:Git代码版本管理

   git log --ontime

实验一:Git代码版本管理

实验一:Git代码版本管理

  git log --p

  git log 命令具有一个可用来显示对文件作出实际更改的选项。该选项是 --patch,可以简写为 -p:

  $ git log -p

实验一:Git代码版本管理

  git log --stat

  The git log 命令有一个选项可以用来显示 commit 中更改的文件以及添加或删除的行数。

实验一:Git代码版本管理

  git show

  git show 命令将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样。因此默认情况下,git show 会显示:

  commit

  作者

  日期

  commit 消息

  补丁信息

实验一:Git代码版本管理

 5)git add& git commit&git diff


  创建文件夹和文件

   首先,创建一个叫做 index.html 的文件,并添加一些起始代码:

 实验一:Git代码版本管理

  尽管尚未对 git 执行任何特殊操作,但是它已经在观察这个目录(因为它是 git 项目),并且知道我们创建了几个新的文件。git status 命令的输出同样十分简洁地告诉我们 git 没有跟踪这些文件。

实验一:Git代码版本管理

  暂存文件

  在终端上运行以下命令,使用 git add 将 index.html 添加到暂存区:

  $ git add index.html


实验一:Git代码版本管理

  提交commit

  index.html 文件已暂存。我们再暂存另外两个文件。现在我们可以运行以下命令:

  $ git add css/app.css js/app.js

  或者使用 git add .   



实验一:Git代码版本管理

  git diff 和 gitingnore

   要在 git 中提交 commit,你需要使用 git commit 命令,但是先别运行这条命令。运行这条命令将会打开你在第一节课配置的代码编辑器。

实验一:Git代码版本管理

实验一:Git代码版本管理

 6)标签、分支

  git tag标签

  进入,前面建立的 new-git-project 项目文件夹中,

  该项目到目前为止的 git log 输出结果:

实验一:Git代码版本管理

实验一:Git代码版本管理

  git tag 命令、验证和删除

  可以通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:

  $ git tag -d v1.0

实验一:Git代码版本管理

  向以前的commit添加标签

  运行 git tag -a v1.0 将为最近的 commit 添加标签。但是如果你想向仓库中很久之前的 Commit 添加标签呢?

  只需提供要添加标签的 commit 的 SHA 即可!

  先查询历史SHA git log --oneline,查找已经commit  的SHA

实验一:Git代码版本管理

7)合并

  

   主题分支(例如 sidebar)的作用是让你做出不影响 master 分支的更改。当你在主题分支上做出更改后,如果觉得不想要该分支上的更改,则可以删掉该分支,或者你决定要保留更改,则可以将该分支上的更改与其他分支上的更改合并。

  将分支组合到一起称为合并。

  git 可以自动将不同分支上的更改合并到一起。这种分支和合并功能正是 git 的强大之处!你可以在分支上做出小的或大的更改,然后使用 git 合并这些更改。

  合并指令

实验一:Git代码版本管理

实验一:Git代码版本管理

  合并冲突

 实验一:Git代码版本管理

实验一:Git代码版本管理

实验一:Git代码版本管理

8)撤销更改

  更改上一个commit消息

 实验一:Git代码版本管理

  向commit中添加忘记的文件

实验一:Git代码版本管理

  还原commit

实验一:Git代码版本管理

总结与体会

  本次的实验对于git有了一个初步的认识,虽然是验证性实验,但是对于巩固理论学习到的相关知识具有很大帮助。在实验期间,我遇到了,默认编辑器设置失败的问题、建立仓库时master配置错误的问题。通过上网搜索、询问同学使得这些问题得以解决。在刚接触到一门崭新的开发工具时,可以在某些视频网站上搜索相关的教程观看,这样对于接触新的开发程序会有一个大体的熟知度。

思考

  分布式版本管理系统注重的是项目整体而不是单个文件或代码。对每个不同的本地用户来说在本地读取数据,可自行拥有全部版本不需要连接主机,不需要服务端,通过合并和信息追踪来实现版本控制,方便快速交流和发布。分布式的特点避免了集中式因为核心部分出错导致系统整体瘫痪的尴尬局面,易于后期的维护和迭代升级。从外实现了开发工程的模块化,使得部分功能能很好的替换、更改、添加、删除。