我的GIT练习Four

2023-11-06

目录

前言

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的时候的练习习题,有兴趣的小伙伴,可以跟着一起学习呀!

总结

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的GIT练习Four 的相关文章

  • 如何制作 github PR 请求审查整个文件?

    有这个问题 https github com isaacs github issues 284这是相关的 允许对更改集之外的部分代码进行注释 我只是想知道是否有人有聪明的解决方法或流程来实现类似的 也许更简单的事情 因此 我有一组不同的文件
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • Git 将一个分支合并到所有其他分支中

    我知道这个问题已经在这里被问过 https stackoverflow com questions 2329716 merging changes from master into all branches using git https
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • Git 到 TFS 源代码管理迁移

    我想看看 TFS 如何为我的命令工作 所以我想将我们当前的 GIT 存储库移动到 TFS 数据库 我们使用 GIT 来获得普遍的分支支持 因此我想使用 TFS 2010 来解决该问题 现在的问题是 如何将 GIT 存储库导出到 TFS 显然
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • 为什么我的 Github 托管网站响应 HTTP 302 而不是 200?

    我拥有该域名penkov id au http penkov id au 我主持一个blog http michael penkov id au blog 2014 01 02 reinventing the wheel html usin
  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • 使当前提交成为 Git 存储库中唯一(初始)提交?

    我目前有一个本地 Git 存储库 我将其推送到 Github 存储库 本地存储库有约 10 次提交 Github 存储库是其同步副本 我想要做的是从本地 Git 存储库中删除所有版本历史记录 以便存储库的当前内容显示为唯一提交 因此存储库中
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • 使用 gitignore 嵌套存储库。

    我想嵌套 2 个 git 存储库 我一直在阅读子模块 有一段时间我认为它很棒 我想我可能想要其他东西 这是我的情况 首先 我想我应该提到我的所有服务器都托管网站 并以 staging domain com 和 domain com 实时 模
  • VSTS:在构建过期的情况下自动变基/合并和重新排队构建验证门

    我们最近对 PR 上的构建验证门进行了更改 这样 如果另一个提交在当前 PR 完成之前进入主分支 则构建会 立即 过期 看here https stackoverflow com questions 49418800 vsts invali
  • BRISK 特征检测器检测零个关键点

    下面显示的 Brisk 探测器没有给我任何关键点 有人可以提出一个问题吗 我将尝试用一些代码解释我在下面所做的事情 include opencv2 features2d features2d hpp using namespace cv u

随机推荐

  • Flink服务器无响应,apache-flink

    在这种情况下 我们有3个kafka主题 每个主题有50个分区 它们具有不同的消息 而所有这些消息都具有 用户名 字段 topic 1 gt Message01 String username about 50 000 messages pe
  • 分析Java线程池执行原理

    Java并发编程源码分析系列 分析Java线程池的创建 上一篇已经对线程池的创建进行了分析 了解线程池既有预设的模板 也提供多种参数支撑灵活的定制 本文将会围绕线程池的生命周期 分析线程池执行任务的过程 线程池状态 首先认识两个贯穿线程池代
  • Vue2.0 Vue脚手架 插件

    Vue当中有一个特别强大但写起来特别简单的一个东西 名字叫 插件 有什么作用 可以帮我们去增强一下Vue 先配置好项目 自己写的话 main js 项目执行npm run serve后第一个进入的 import Vue from vue i
  • maven报错‘has elapsed or updates are forced“

    使用 U强制更新参数运行maven命令
  • 少儿机器人编程有什么用

    少儿机器人编程有什么用 小孩的学习一直以来都是家长们非常关心和重视的一件事情 很多的家长在培养孩子的学习方面也可以说是相当的耐心的 会给孩子选择一些能更有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于
  • 解决Enter passphrase for key

    两种解决方案 提示 Permissions 0644 for ssh id rsa pub are too open 解决方法 使用chmod 0600 ssh id rsa pub更改将公钥权限改成 600 提示 Enter passph
  • Java中的静态变量&静态方法

    静态变量 静态方法 静态变量又叫做类变量 静态方法又被称为类方法 均被static修饰 未被static修饰的成员变量和方法分别被称为实例变量和实例方法 1 静态方法中不需要它所属类的任何实例就可以访问 所以在静态方法中不可以使用this关
  • Swift语法学习--运算符与流程控制

    文章目录 运算符 循环 条件 预处理器指令 运算符 普通的运算符加减乘除 与或非 三元运算我觉得没必要再赘述了 就记录一下我不熟悉的 循环 条件 预处理器指令
  • SQL Server 数据库中添加文件组和数据文件

    SQL Server 现有数据库中添加文件组和数据文件 use CURRENT DB 进入当前操作数据库 go alter database CURRENT DB add filegroup FG1 向CURRENT DB 数据库添加FG1
  • idea安装插件plugin(主要针对网络连接不上的情况)

    STEP1 ctrl alt s 打开settings STEP2 在输入框键入 Plugins STEP3 输入你想要的插件名称 我这边输入的是nodejs 因为最近在学 我这边是安装过的 所以这样显示 STEP4 点开中下方的前两个按钮
  • 在windows下编译glib库

    glib库是跨平台的C语言函数库 是Gtk 库和Gnome的基础 glib可以在多个平台下使用 比如Linux Unix Windows等 glib为许多标准的 常用的C语言结构提供了相应的替代物 先从官网下载下载 https downlo
  • Linux网络通信总结

    网络IO之阻塞 非阻塞 同步 异步 单播 多播 组播 广播 多路复用POLL SELECT epoll 超时 read write accept connect 超时 实现 1 用select来设置超时机制 2 使用setsockopt 函
  • React 子向父级组件通信时,state为旧的数据

    问题描述 当嵌套太深的子组件触发更新父组件时 父组件获取到的state map传入子组件 是旧的 问题场景 初始子组件仅为1个Input输入框 新增后有2个Input输入框 此时触发222输入框的修改 通知上级组件保存修改的内容时 父组件存
  • 数据结构—单链表C语言刷题2

    目录 1 链表分割 2 链表的回文结构 3 相交链表 4 环形链表 5 环形链表II 1 链表分割 题目链接 链表分割 题目描述 现有一链表的头指针 ListNode pHead 给一定值x 编写一段代码将所有小于x的结点排在其余结点之前
  • Debug下出现debug assertion failed

    出现debug assertion failed界面后点击重试跳到这句ASSERT m hObject NULL 采用注释查找错误的方式定位至 if CFrameWnd OnCreate lpCreateStruct 1 return 1
  • 获取referer中的请求参数_Http请求头中的referer

    Referer是 HTTP请求header 的一部分 当浏览器 或者模拟浏览器行为 向web 服务器发送请求的时候 头信息里有包含 Referer 比如我在www google com 里有一个www baidu com 链接 那么点击这个
  • 在Linux内核中添加自己的驱动程序

    就说一下怎么添加进去吧 首先你要把驱动程序写好 我已添加 首先在drivers目录下面创建GPIO文件夹 文件夹下面创建三个文件 分别是 gpio c Kconfig Makefile 三个文件 gpio c是你的驱动程序 Kconfig是
  • Spring复习笔记

    1 Spring 1 1 简介 优点 Spring是一个轻量级控制反转 IoC 和面向切面 AOP 的容器 轻量级 低侵入 松耦合 框架粘合剂 更容易整合其他框架 支持事务处理 官网 https spring io projects spr
  • 不怕死就上这些网站

    1 hxxp www dj3344 com 打开后 重启时你的主页就变成它的 并通过QQ向他人传播 现在正飙行 奇坏无比 2 hxxp www qq168 net 打开后 重启时你的主页就变成它的 并通过QQ向他人传播 而且传波病毒 还狠些
  • 我的GIT练习Four

    目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习Four C1 初始化项目 C2 设计项目首页 C3 设计登录页面 C4 实现登录功能 C5 设计后台页面 C6 设计注册页面 C7 实现注册功