我的GIT练习Three

news2024/11/23 23:42:55

目录

前言

GIT安装教程

Git作者

GIT优点

GIT缺点

为什么要使用 Git

GIT练习Three

总结


前言

Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理

GIT安装教程

点击进入查看教程:点击进入

Git作者

作者:Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰

GIT优点

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。

GIT缺点

  • 不符合常规思维
  • 代码保密性差,一旦把代码克隆下来那么完全可以暴露所有的代码版本信息
  • 模式上比SVN(很流行的开源代码版本控制系统)更加的复杂

为什么要使用 Git

  • 可以离线工作
  • 和他人协同工作更加轻松
  • 分支很轻松
  • 合并很容易
  • git系统速度快,同时也很灵活

GIT练习Three

根据上图实现以下操作,其中C1~C9表示的是9次提交,有三个分支,分别为:

  • 主分支:master
  • 实现登录功能的分支:feature-login
  • 实现注册功能的分支:feature-reg

C1:初始化项目,添加三个文件1.html、2.html、3.html

并为本仓库,添加用户名:tomcat,而邮箱使用全局的

# 初始化仓库
$ git init ums
$ cd ums

# 针对本仓库设置特有的帐号
$ git config --local user.name tomcat

# 创建文件,并提交第一个版本
$ touch {1..3}.html
$ git status
$ git add .
$ git status
$ git commit -m 'C1:初始化项目'

$ git log

 

C2:设计项目首页,重命名1.html为index.html。并加添加内容“这是首页”。

$ mv 1.html index.html
$ git add .


$ git mv 1.html index.html
$ echo 这是首页 > index.html

$ git status
$ git add .

$ git commit -m 'C2:设计项目首页'

C3:设计登录页面,创建并切换分支(feature-login),在此分支创建login.html文件,并添加内容为:"这是登录页面"

# 先创建分支,后切换分支
$ git branch feature-login
$ git switch feature-login

# 创建并同时切换分支
$ git checkout -b feature-login

# 查看分支
$ git branch

$ echo 这是登录页面 > login.html
$ git add .
$ git commit -m 'C3:设计登录页面
'

C4:实现登录功能,创建Login.java文件,添加内容为:“这是登录功能的实现"

$ echo 这是登录功能的实现 > Login.java
$ git add .
$ git commit -m 'C4:实现登录功能'

C5:设计后台页面,切换为master分支,实现以下操作

  1. 在git仓库中,删除2.html文件
  2. 编辑3.html文件,输入内容为“这是后台页面”
  3. 提交版本
  4. 撤销一个版本,回到C2提交
  5. 重命名2.html为backend-index.html,并输入内容为“这是后台页面”
  6. 修改index.html的内容为“欢迎光临”
  7. 提交版本

$ git switch master

# 删除文件
$ rm 2.html
$ git add .

$ git rm 2.html

$ vim 3.html
$ git add .
$ git commit -m 'C5:设计后台页面'


# 撤消版本
$ git reset --hard HEAD^
$ git reset --hard dac1db0
$ git reset --hard dac1db0ede2ffde76a61a98f4cbfe8838e8a6a5b


$ git mv 2.html backend-index.html
$ echo 这是后台页面 backend-index.html
$ echo 欢迎光临 index.html
$ git add .
$ git commit -m 'C5:设计后台页面'

C6:设计注册页面,创建并切换分支(feature-reg),重命名3.html为reg.html,并添加内容为:"这是注册页面"

$ git checkout -b feature-reg
$ git mv 3.html reg.html
$ echo 这是注册页面 > reg.html
$ git add .
$ git commit -m 'C6:设计注册页面'

C7:实现注册功能,创建Reg.java文件,添加内容为:“这是注册功能的实现";同时,编辑index.html文件,内容修改为:"这是首页"

$ echo 这是注册功能的实现 > Reg.java
$ vim index.html
$ git add .
$ git commit -m 'C7:实现注册功能'

C8:编辑后台功能菜单,切换回master分支,并实现以下操作

1.编辑bakend-index.html,修改内容为:

<h1>欢迎登录Xxx系统后台页面</h1>
<h3>用户管理</h3>
<h3>商品管理</h3>
<h3>订单管理</h3>

2.编辑index.html,内容修改为:好好学习,天天向上

内容修改为:好好学习,天天向上

3.提交版本,然后合并feature-login分支

$ git switch master
$ vim backend-index.html
$ vim index.html
$ git add .
$ git commit -m 'C8:编辑后台功能菜单'

# 合并产生新的一个版本
$ git merge feature-login

C9:实现登录功能的优化,在master分支中合并feature-reg。并实现以下操作:

  1. 解决合并冲突问题
  2. 编辑Login.java,追加内容为“完成了登录功能的优化”。
  3. 提交版本
  4. 撤销上一个版本
  5. 恢复上一个版本

# 合并分支 - index.html文件有冲突
$ git merge feature-reg

<<<<<<< HEAD
好好学习,天天向上
=======
这是首页

>>>>>>> feature-reg

$ vim index.html

$ echo 完成了登录功能的优化 >> Login.java
$ git add .
$ git commit -m 'C9:实现登录功能的优化'

$ git reset --hard HEAD^

# 查看操作日志 - 获取 C9 这个版本ID
$ git reflog
$ git reset --hard C9ID

最后,查询本地仓库的分支,并删除feature-login、feature-reg

$ git branch
$ git branch --delete feature-login
$ git branch --delete feature-reg

好了,这上面就是我初学GIT的时候的练习习题,有兴趣的小伙伴,可以跟着一起学习呀!

总结

每一次的练习,都是对自身知识的巩固,以及对自身知识的一个测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(深入浅出)详解虚拟内存

概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此&#xff0c;操作系统需要有一套完善的内存管理机制才能防止进程之间内存泄漏的问题。 为了更加有效地管理内存并减少出错&#xff0c;现代操作系统提供了一种对主存的抽象概念&#xff0c;即是虚拟内存&am…

从未尝试过的 7 种处理 CSS 的方法

啊&#xff0c;Web 开发的世界——您可以从学习 HTML、JavaScript&#xff0c;当然还有 CSS 等基础知识开始。 但是一旦你在现实世界中构建应用程序&#xff0c;纯 CSS 就不再适用了。 挣扎是真的。 因此&#xff0c;今天我们将深入探讨使用 NextJS 为 React 应用程序编写 CSS…

NLP与GPT联合碰撞:大模型与小模型联合发力

目录标题 NLP是什么东西&#xff1f;Al大小模型联合发力 NLP是自然语言处理&#xff0c;而GPT是自然语言生成模型。 它们的联合碰撞结果是大模型与小模型联合发力&#xff0c;是因为大模型可以提供更好的语言理解和生成能力&#xff0c;而小模型则可以更快地进行推理和预测。 …

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【剑指offer专项突破版】字符串篇——“C“

前言 剑指offer专项突破版&#xff08;力扣官网&#xff09;——> 点击进入 本文所属专栏——>点击进入 一.字符串中的变位词 题目分析 总结 要求——在字符串2中找到字符串的1的排列顺序之一 数据格式——仅包含小写字母——哈希表&#xff01; 返回值——bool值 思路分…

国产数据库有哪些?关键行业数据库为何一定要国产化?

国产数据库主要有以下几种&#xff1a; 1. 中国数据库&#xff08;ChinaDB&#xff09;&#xff1a;由中国科学院计算技术研究所开发的关系型数据库系统。 2. 华为GaussDB&#xff08;高斯数据库&#xff09;&#xff1a;国内首个软硬协同、全栈自主的国产数据库GaussDB&…

操作系统-内存管理-内存管理

目录 一、内存概念 1.1程序的链接 静态链接 装入时动态链接 运行时动态链接 1.2 程序的装入 绝对装入 可重定位装入(静态重定位) 动态运行时装入(动态重定位) 1.3内存空间的扩充 1.3.1覆盖 1.3.2交换技术 1.4连续管理分配管理方式 1.4.1单一连续分配 1.4.2固定分区分…

设计师必备!Axure RP10汉化版下载,一站式工具满足所有需求!

Axure RP10 汉化版是一款全新的原型、设计、交付工具&#xff0c;它兼容 Axure、Figma、Sketch 和 Adobe XD 等格式&#xff0c;提供一站式协同设计&#xff0c;帮助团队高效工作。在本文中&#xff0c;我们将为你介绍 Axure RP10 汉化版即时设计的下载和安装步骤&#xff0c;让…

c++学习——多态

多态 **多态的语法****多态的底层原理图****多态案1——计算机类****纯虚函数和抽象类****多态案例2——饮品****虚析构和纯虚析构****多态案例3—— 电脑组装** 多态是C面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态&#xff0c;复用函数名 动…

ssm本地上传文件

SSM实现图片本地上传并保存到本地磁盘中 功能描述 实现房屋租赁网站中添加房屋信息的功能。其中add.jsp页面是一个表单提交信息——添加房屋 首先输入房屋的相关信息&#xff0c;并上传房屋的图片。上传成功后会将图片的名字添加到数据库中成功后跳转到success.jsp&#xff…

华为OD机试 Java 实现【简单密码】【牛客练习题 HJ21】,附详细解题思路

一、题目描述 现在有一种密码变换算法。 九键手机键盘上的数字与字母的对应&#xff1a; 1--1&#xff0c; abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0&#xff0c;把密码中出现的小写字母都变成九键键盘对应的数字&#xff0c;如&#xff1a;a …

【PaperReading】科学可重复的基因组富集: CERNO 与其他八种算法的比较

Gene set enrichment for reproducible science: comparison of CERNO and eight other algorithms 可重复性科学的基因组富集: CERNO 与其他八种算法的比较1. 引言2. 材料和方法2.1 CERNO算法2.2 进一步用于评估的算法2.3 数据集2.4 算法评估指标3. 结果3.1 CERNO算法的不同排…

【前端 - HTML】第 2 课 - HTML 标签

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、标题标签 3、段落标签 4、文本格式化标签 5、图像标签 5.1、基本作用 5.2、属性 6、超链接标签 7、音频标…

STM32 FSMC机制

引 言 STM32是ST(意法半导体)公司推出的基于ARM内核Cortex&#xff0d;M3的32位微控制器系列。Cortex&#xff0d;M3内核是为低功耗和价格敏感的应用而专门设计的&#xff0c;具有突出的能效比和处理速度。通过采用Thumb&#xff0d;2高密度指令集&#xff0c;Cortex&#xff0…

五种I/O模型

一、I/O基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 (1)用户进程空间<-->内核空间 (2)内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、…

个人博客网站实现微信扫码登录(新)

前言 在不久之前&#xff08;两年前&#xff09;我写了一篇同名的博客《个人博客网站实现微信扫码登录&#xff08;附源码&#xff09;》&#xff0c;当时只是做一个记录而已。但是没想到会收到很多“猿友”的私聊&#xff0c;“代码跑不起来”、“实现原理”、“测试网址访问不…

[网鼎杯 2018]Fakebook1

拿到题目后是一个博客的界面&#xff0c;这里可以登录和注册 点入登录界面&#xff0c;猜测可能是sql注入 试了很多次&#xff0c;都不是&#xff0c;也没有回显报错&#xff0c;所以把目光放到了注册上面 注册的其他行数据&#xff0c;差不多都可以乱填&#xff0c;只有一个bl…

王道考研计算机网络第二章知识点汇总

2.1.1物理层基本概念 电气特性和功能特性易混淆&#xff0c;注意区分。电气特性一般指的是某个范围&#xff0c;功能特性一般指的是电平所代表的含义。 2.1.2数据通信基础知识 同步传输是指发送方和接收方节奏是统一的&#xff0c;数据之间是没有间隔的是一个一个的区块。在键…

轻松掌握Python自动化工具,解锁PyAutoGUI的强大功能

前言 PyAutoGUI是一个用于图像识别和鼠标/键盘控制的Python库。它提供了一组函数和方法&#xff0c;用于自动化屏幕上的鼠标移动、点击、拖拽和键盘输入&#xff0c;以及执行图像识别和处理。本文旨在帮助读者入门 PyAutoGUI&#xff0c;理解其基础概念和掌握最佳实践&#xff…

手把手教你实现—基于OpenCV的车流量统计和车速检测代码

本章将实现了一个简单的车辆速度估计和车流量统计的GUI应用&#xff0c;它使用了Haar级联检测器和相关跟踪器来检测和跟踪视频中的车辆&#xff0c;并通过图像处理和数学计算来估计车辆的速度。 1.首先&#xff0c;该代码需要cv2&#xff1a;用于图像处理和计算机视觉任务&…