实验目的:

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 -列出当前目录

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

可在终端上运行以下命令:- mkdir -p se2020-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配置错误的问题。通过上网搜索、询问同学使得这些问题得以解决。在刚接触到一门崭新的开发工具时,可以在某些视频网站上搜索相关的教程观看,这样对于接触新的开发程序会有一个大体的熟知度。

思考

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

python版本控制git_实验一:Git代码版本管理相关推荐

  1. 实验一 GIT 代码版本管理

    实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init g ...

  2. Git代码版本管理命令和团队协作规范---实践版

    Git代码版本管理流程和团队协作规范 Git版本管理介绍 git各分支功能介绍 master 分支 develop 分支 feature 分支 release 分支 hotfix 分支 使用规范 ** ...

  3. Git 代码版本管理工具详解 进厂必备

    目录 前言 Git 概述 什么是版本控制? 为什么需要版本控制? 版本控制工具 集中式 分布式 Git 工作机制 Git安装 Git 常用命令(部分) 初始化本地库 设置用户签名 初始化本地库 查看本 ...

  4. 使用gitblit配置git代码版本管理服务器

    作为前端,以前在公司里的代码版本管理服务器一般都是已经配置好的,而新到了一家公司,这个还没配置,而且没有单独的一台机器代为服务器,只能用自己的电脑了,在网上看了一下,一般代码版本控制用的工具是gitL ...

  5. python 版本控制及django,git的使用

    一.安装pyenv 安装pyenv首先安装好python编译需要的rpm包环境: yum install readline readline-devel readline-static -y yum ...

  6. 局域网搭建Git代码版本管理仓库

    文章目录 零.前期准备 一.局域网建立共享文件夹 二.创建版本库 三.测试拉取 零.前期准备 前期准备: 1. 准备两个电脑,一个远程PC,一个本地PC 2. 本地PC安装git小乌龟 ( Torto ...

  7. git 代码回滚_git代码版本管理(1)——git版本回滚

    git代码版本管理(1)--git版本回滚 1.问题背景 在利用github.gitlab.Gitee等代码管理器中对代码的管理,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提 ...

  8. python web 文件管理_我的第一个python web开发框架(23)——代码版本控制管理与接口文档...

    书接上一回,小白和老菜聊到代码的版本控制和接口文档 小白:为什么要做版本控制,我不弄版本控制不也完成了项目了吗?要做版本控制不是很麻烦,又要安装服务又要提交代码,代码又不是多人用开发,还要写文档... ...

  9. Git学习总结(17)——大型分布式团队的代码版本管理

    从开始工作到现在,我经历过没有代码版本管理.代码集中式管理,以及现在的分布式管理,我深刻体会到它在软件开发过程中的重要性: 我在工作中遇到的很多客户都存在对于代码版本管理的各种问题.困惑和不同的需求. ...

最新文章

  1. windows下使用Hibernate连接Mycat例子
  2. Java-利用Spring提供的Resource/ResourceLoader接口操作资源文件
  3. 项目使用了redis还需要mysql_【11-05】lnmp项目中Redis和Mysql配合使用应该注意哪些问题?...
  4. 用计算机答题答案提交后能否改错,南京晓庄计算机操作系统习题库含答案全1-5章...
  5. [原]动态打jar包程序,可用于手机图片音乐游戏的动态打包
  6. 用long类型让我出了次生产事故,写代码还是要小心点
  7. finetune与Bert
  8. 【OpenCV 例程200篇】80. 频率域图像滤波详细步骤
  9. Linux学习笔记(四)之用户登录
  10. php中unset函数是在哪一章_PHP unset函数好奇怪 -
  11. 勤于思考:Asp.Net MVC Html.TextBoxFor日期格式化
  12. Node.js(express) + MongoDB(mongoose) 简单开发(二)
  13. 下拉框只读的时候没有下拉图标_百度下拉框营销秘密是什么
  14. cnpm 安装yarn
  15. 手机号,身份证号,姓名等校验
  16. iOS 框架模式(简述 MVC,MVP,MVVM 和 VIPER)
  17. 美团App用户界面分析
  18. 微信小程序——使用npm包、分包
  19. 程序员学习路线(个人)
  20. ArcGIS教程:成本路径 (空间分析)

热门文章

  1. leetcode算法题第三题(c++)
  2. latex 图片和标题一起旋转
  3. Latex中插入超链接/网址
  4. ubuntu + pycharm + anaconda + pyqt5 + tools 配置
  5. react 生命周期函数
  6. JZOJ5197 C
  7. 关于协程及其锁的一些认识
  8. 快速了解C#接口(Interface)
  9. 统计面要素中点要素的个数.
  10. soapUI(groovy脚本作用1)请不要问为什么系列1