我的GIT练习Four

news2024/11/8 23:35:01

目录

前言

GIT安装教程

Git作者

GIT优点

GIT缺点

为什么要使用 Git

GIT练习Four

C1:初始化项目

C2:设计项目首页

C3:设计登录页面

C4:实现登录功能

C5:设计后台页面

C6:设计注册页面

C7:实现注册功能

C8:编辑后台功能菜单

C9:实现登录功能的优化

扩展练习

总结


前言

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

GIT安装教程

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

Git作者

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

GIT优点

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

GIT缺点

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

为什么要使用 Git

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

GIT练习Four

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

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

前期准备:

1)在gitee中注册帐号,配置SSH公钥,如果已经配置,则删除重新配置

2)在gitee中创建远程仓库,命名为:pms

# 进入用户目录
$ cd ~

# 删除 .ssh 目录
$ rm -rf .ssh

# 重新生成公钥、私钥文件 - 一路回车
$ ssh-keygen -t rsa -C "114729040@qq.com"

$ cd .ssh
$ cat id_rsa.pub

C1:初始化项目

1)创建本地仓库,命名为product-ms,为此仓库添加用户名:tomcat,而邮箱使用全局的

# 初始化仓库
$ git init product-ms
$ cd product-ms

1.1针对当前仓库配置帐号

# 针对当前仓库配置帐号
$ git config --local user.name tomcat

2)添加忽略文件,忽略以下内容

# 创建忽略文件,并添加配置需要忽略的文件
$ vim .gitignore

*.class
*.txt
.idea
*.iws
*.iml
*.ipr
.vscode/
target/
out/

3)添加文件:1.html2.html3.htmlreadme.txtHello.classREADME.md

# 在工作区中,创建相关的文件 - 其中 Hello.class 被忽略
$ touch 1.html 2.html 3.html readme.txt Hello.class README.md

4)创建target文件夹,并添加11.html,22.html,33.html文件

# 在工作区中,创建target目录,并在此目录下创建相关的文件 - 此目录被忽略
$ mkdir target
$ cd target
$ touch 11.html 22.html 33.html

5)添加远程仓库:pms

# 暂存提交版本
$ git add .
$ git commit -m 'C1:初始化项目'

# 查看远程仓库
$ git removte -v

# 添加远程仓库
$ git remote add origin git@gitee.com:zing173/pms.git

6)提交本地仓库,描述信息为:C1:初始化项目,并推送到远程仓库

# 推送远程仓库 - 第一次提交使用 -u 参数
$ git push -u origin master

注意:观察远程仓库与本地仓库的文件是否一致!

C2:设计项目首页

1)创建文件夹:images,css,js

# 创建目录
$ mkdir images css js

2)往images文件夹中放一张照片,js文件夹中,添加JQ的函数库和Vue的框架文件

# 在各目录下创建或添加相关的文件
$ cd images
$ touch girl.jpg

$ cd ..
$ cd js
$ touch jquery.js vue.js

$ cd ../css

3)在css文件夹中,创建index.css,并添加内容如下所示:

$ vim index.css

h1 {color:red}

4)重命名1.html为index.html。并加添加内容如下所示:

# 修改文件名称并添加内容
$ git mv 1.html index.html
$ vim index.html

<h1>这是首页</h1>
<img src="images/xxx.jpg"/>

6)提交本地仓库,描述信息为:C2:设计项目首页,并推送到远程仓库

# 暂存提交
$ git add .
$ git commit -m 'C2:设计项目首页'

# 推送
$ git push

7)在此版本中,创建一个标签(v1.0.0),并推送到远程仓库中

# 创建本地标签并推送远程仓库
$ git tag v1.0.0
$ git push origin v1.0.0

注意:看不懂上面7个步骤,直接看这里也是一样的:

# 创建目录
$ mkdir images css js

# 在各目录下创建或添加相关的文件
$ cd images
$ touch girl.jpg

$ cd ..
$ cd js

$ touch jquery.js vue.js

$ cd ../css
$ vim index.css

# 修改文件名称并添加内容
$ git mv 1.html index.html
$ vim index.html

# 暂存提交
$ git add .
$ git commit -m 'C2:设计项目首页'

# 推送
$ git push

# 创建本地标签并推送远程仓库
$ git tag v1.0.0
$ git push origin v1.0.0

C3:设计登录页面

1)创建并切换分支(feature-login),并提交远程仓库

# 创建并切换分支,推荐远程仓库
$ git checkout -b feature-login
$ git push --set-upstream origin feature-login

2)在此分支创建login.html文件,并添加内容为:

# 编辑文件,添加内容
$ vim login.html

<h1>这是登录页面</h1>

3)提交本地仓库,描述信息为:C3:设计登录页面,并推送到远程仓库

# 暂存、提交、推送
$ git add .
$ git commit -m 'C3:设计登录页面'
$ git push

C4:实现登录功能

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

$ echo 这是登录功能的实现 > Login.java

2)提交本地仓库,描述信息为:C4:实现登录功能

$ git add .
$ git commit -m 'C4:实现登录功能'

3)推送远程仓库

$ git push

C5:设计后台页面

要求:切换为master分支,实现以下操作

1)在git仓库中,删除2.html文件

git rm 2.html

2)编辑3.html文件,输入内容为“这是后台页面”

$ git checkout master

$ vim 3.html

3)提交版本

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

4)即回退到上一个提交,也就是上一个版本

$ git reset --hard HEAD~1

5)重命名2.htmlbackend-index.html,并输入内容为“这是后台页面”

$ git mv 2.html backend-index.html
$ echo 这是后台首页 > backend-index.html

6)修改index.html的内容为“欢迎光临”

$ vim index.html

<h1>欢迎光临</h1>

7)提交版本

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

8)推送远程仓库

$ git push

C6:设计注册页面

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

$ git checkout -b feature-reg
$ git mv 3.html reg.html
$ echo 这是注册页面 > reg.html

$ git checkout -b feature-reg
$ git mv 3.html reg.html
$ echo 这是注册页面 > reg.html


2)提交版本

$ git add .
$ git commit -m 'C6:设计注册页面'


3)推送远程仓库

# git push - 失败 - 远程仓库并不存在 feature-reg 这个分支
$ git push --set-upstream origin feature-reg

C7:实现注册功能

1)创建Reg.java文件,添加内容为:“这是注册功能的实现";

$ echo 这是注册功能的实现 > Reg.java


2)编辑index.html文件,内容修改为:"这是首页"

$ vim index.html

<h1>这是首页</h1>


3)提交版本,并推送远程仓库

$ git add .
$ git commit -m 'C7:实现注册功能'

# 修改最后一个提交版本的描述信息
$ git commit --amend

$ git push

C8:编辑后台功能菜单

要求:切换回master分支,并实现以下操作

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

$ git checkout master

$ vim backend-index.html

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

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

$ vim index.html

<h3>好好学习</h3>

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

$ git add .
$ git commit -m 'C8:编辑后台功能菜单'

# 注意:在这里会创建一个新的版本提交(上图没有画出来)
$ git merge feature-login

C9:实现登录功能的优化

要求:master分支中合并feature-reg。并实现以下操作:

1)解决合并冲突问题

# 合并分支
$ git merge feature-reg

2)编辑Login.java,追加内容为“完成了登录功能的优化”

# 编辑文件,修改内容
$ vim index.html
$ vim Login.java

<h3>完成了登录功能的优化</h3>

3)提交版本

# 暂存,提交版本
$ git add .
$ git commit -m 'C9:实现登录功能的优化'

4)撤销上一个版本和恢复上一个版本

# 撤销、恢复
$ git reset --hard HEAD~
$ git reflog
$ git reset --hard 版本号

5)推送远程仓库

# 推送
$ git push

6)在此版本中,创建标签(v1.1.0),并推送到远程仓库

# 创建、推送标签
$ git tag v1.1.0
$ git push origin v1.1.0

扩展练习

# Gitt操作(略)

# 拉取远程仓库
$ git pull

# 删除标签
$ git push origin --delete v1.0.0
$ git tag -d v1.0.0

# 切换其它目录,克隆远程仓库
$ git clone https://gitee.com/zing173/pms.git

# 查看分支
git branch

# 删除分支
$ git branch -d feature-login
$ git push origin --delete feature-login

$ git branch -d feature-reg
$ git push origin --delete feature-reg

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

总结

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

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

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

相关文章

Yolov5轻量化:CVPR2023|RIFormer:无需TokenMixer也能达成SOTA性能的极简ViT架构

1.RIFormer介绍 论文:https://arxiv.org/pdf/2304.05659.pdf 本文基于重参数机制提出了RepIdentityFormer方案以研究无Token Mixer的架构体系。紧接着,作者改进了学习架构以打破无Token Mixer架构的局限性并总结了优化策略。搭配上所提优化策略后,本文构建了一种极致简单且…

第五期:字符串的一些有意思的操作

文章目录 1. 替换空格2. 字符串的左旋转3. 答案代码3.1 替换空格3.2 字符串的左旋转 PS&#xff1a;每道题解题方法不唯一&#xff0c;欢迎讨论&#xff01;每道题后都有解析帮助你分析做题&#xff0c;答案在最下面&#xff0c;关注博主每天持续更新。 1. 替换空格 题目描述 请…

Microsoft SQL Server 2019 详细安装教程

文章目录 系列文章目录前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一、SqlServer2019安装步骤 双击运行好的setup.exe 选择安装&#xff0c;点击第一个全新独立安装 默认点击下一步 勾选介绍&#xff0c;点击下一步 点击下一步 点击下一步 勾选需要…

容器镜像分析工具dive

概述 dive是一个容器镜像分析工具&#xff0c;可以直观的看到容器每一层变动了哪些文件&#xff0c;每一层占用的磁盘空间&#xff0c;这样也就可以看到镜像的历史构建过程&#xff1b;同时也可以看到镜像的磁盘空间使用率&#xff0c;面对特别大的镜像文件是&#xff0c;可以…

问道手游-0基础架设教程

前言 本次教程使用的是问道魔改版的一个服务端、问道传奇、里面地图玩法基本与传奇类似 准备工具 1、Windows系统服务器一台 2、问道传奇服务端 开始架设 1、把准备好的问道传奇服务端解压到服务器D盘根目录记住必须得是根目录 不在根目录会导致快捷方式失效&#xff08;服务器…

ChatGPT新突破:打造自己的智能机器人控制系统

&#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&#xff1a;Zeeland&#x1f4da; Github主页: Undertone0809 (Zeeland) (github.com)&…

【ArcGIS Pro二次开发】(35):三调三大类面积统计

根据《第三次全国国土调查技术规程》&#xff0c;三调中的地类可以归纳为土地管理法中规定的三大类用地。 我们可以在三调中直接统计出这三大类用地的面积。主要方法是在ArcGIS中将这三大类对应的用地提取出来&#xff0c;再进行统计。不过每次都要在复制一长串的筛选语句&…

Android Small框架增量升级方案

篇首语&#xff1a;本文由小常识网(cha138.com)小编为大家整理&#xff0c;主要介绍了Android Small框架增量升级方案相关的知识&#xff0c;希望对你有一定的参考价值。 背景 随着业务的发展&#xff0c;安装包的体积也在不断的增大&#xff0c;这时候&#xff0c;如果要版本…

vscode下,camke构建QT项目成功后,Cmake/Launch无法出现程序窗口的原因和解决方式

由于可执行程序根目录下没有 qt 相关 dll 文件&#xff0c;直接运行会出现一闪而过的问题&#xff0c;所以需要进入 build目录&#xff0c;终端运行类似如下指令&#xff1a; D:\QT\5.15.2\mingw81_64\bin\windeployqt.exe .\test001.exe 注意&#xff1a;环境变量不能配置ms…

计算机视觉特征图可视化与注意力图可视化(持续更新)

1.YOLOv5 特征图可视化 可视化代码&#xff1a; def feature_visualization(x, module_type, stage, n2, save_dirPath(runs/detect/exp)):"""x: Features to be visualizedmodule_type: Module typestage: Module stage within mod…

前端工程化-NPM

前端工程化-NPM 1&#xff0e;什么是NPMNPM安装基本使用 1&#xff0e;什么是NPM NPM代表npmjs.org这个网站&#xff0c;这个站点存储了很多Node.js的第三方功能包。 NPM的全称是Node Package Manager&#xff0c;它是一个Node.js包管理和分发工具&#xff0c;已经成为非官方的…

DR模式 LVS负载均衡群集部署

DR模式 LVS负载均衡群集部署 一、LVS-DR工作原理1.数据包流向分析2.LVS-DR中的ARP问题3.LVS-DR模式的特点 二、LVS-DR部署1.部署NFS服务器2.配置2台节点服务器3.部署调度服务器 一、LVS-DR工作原理 1.数据包流向分析 &#xff08;1&#xff09;客户端发送请求到 Director Serv…

Spring Cloud Ribbon源码解析,Ribbon为什么可以实现负载均衡,为什么可以用服务名调用

文章目录 一、Ribbon概述1、Ribbon简单使用&#xff08;1&#xff09;引包&#xff08;2&#xff09;使用方式一&#xff1a;RestTemplateLoadBalanced&#xff08;3&#xff09;使用方式二&#xff1a;LoadBalancerClient 2、问题来了 二、前置知识回顾1、复习Qualifier的作用…

时序逻辑与组合逻辑

目录 一、概念 二、区别 一、概念 数字电路按照逻辑功能一般可以分为组合逻辑和时序逻辑。组合逻辑电路是指不含有任何存储器件&#xff08;一般指寄存器&#xff09;的电路&#xff0c;它的输出只和当前电路的输入有关&#xff1b;时序逻辑电路含有存储器件&#xff0c;可以…

[PyTorch][chapter 38][ResNet ]

前言&#xff1a; 论文地址&#xff1a; https://arxiv.org/pdf/1512.03385.pdf 残差网络是由来自Microsoft Research的4位学者提出的卷积神经网络&#xff0c;在2015年的ImageNet大规模视觉识别竞赛&#xff08;ImageNet Large Scale Visual Recognition Challenge, ILSVRC&am…

[ATL/WTL]_[初级]_[如何获取ListView点击的单元格区域]

场景 在做Win32/WTL开发时&#xff0c;CListViewCtrl控件是常用的表格控件。有时候自绘listview时&#xff0c;需要在单元格上绘制小图标&#xff0c;并且小图标能响应鼠标点击的操作。 那么如何实现判断是否点击了小图标呢&#xff1f; 说明 要响应点击单元格上的小图标&…

MongoDB笔记

mongoDB基础知识 MongoDB的三个核心特性&#xff1a;灵活设计&#xff08;No Schema&#xff09;、高可用和分布式&#xff08;可平行扩展&#xff09;&#xff0c;另外MongoDB自带数据压缩功能&#xff0c;使得同样的数据存储所需的资源更少。 No Schema&#xff08;BJSON&a…

NeRF-Diffusion系列文章阅读

文章目录 前置知识《Latent-NeRF for Shape-Guided Generation of 3D Shapes and Textures》【CVPR23】《NeRDi: Single-View NeRF Synthesis with Language-Guided Diffusion as General Image Priors》【CVPR23】《SparseFusion: Distilling View-conditioned Diffusion for …

【系统找不到D盘指定驱动设备之解决方法】

文章目录 1.原因2.解决经过3.最终解决办法 1.原因 今天在搞课设&#xff0c;突然之间电脑一顿卡&#xff0c;然后整个电脑屏幕空白&#xff0c;D盘以及所有的安装软件都不见了。点击屏幕出现提示系统找不到指定驱动设备等等提示&#xff0c;查看此电脑发现D盘神奇的消失了。 …

Kafka面试题01

1、kafka有哪些特点 高吞吐&#xff0c;低延迟 可以热扩展 并发度高 具有容错性&#xff08;即使挂的只剩下一台也可以正常工作&#xff09; 可靠性高2、请简述你在那些场景下会选择kafka&#xff1f;kafka的应用 日志收集&#xff1a; 一个公司可以用kafka收集各种服务的log…