Git全套,从简到细

news2024/12/26 11:00:34

Git @Draven

  • Git
    • 一、git工具引入
    • 二、git本地工具
      • 2.1、下载
      • 2.2、使用
      • 2.3、修改
      • 2.4、查看历史版本
      • 2.5、回退历史版本
      • 2.6、起死回生
    • 三、git远程仓库
      • 3.1、使用gitee
      • 3.2、配置本地仓库参数
      • 3.3、查看gitee仓库
      • 3.4、修改后推送
    • 四、git两人协作-非冲突
      • 小智
      • 小杨
    • 五、git两人协作-冲突
    • 六、git分支
      • 6.1git存在的意义
      • 6.2、使用
    • 七、vue项目git注意
    • 八、开发流程&云服务器
      • 开发流程
      • 云服务器
    • 九、nginx上线
  • git命令

Git

一、git工具引入

在这里插入图片描述

  • 版本控制工具
  • 代码管理工具
  • 团队协作工具

二、git本地工具

2.1、下载

  • https://git-scm.com/download/win

  • 别这么多事,安装过程下一步点到底

2.2、使用

  1. 新建test2022文件夹

  2. 进入test2022文件夹,在空白处右键->Git Bash Here 打开git命令行面板

  3. 输入git init命令

    • 在文件夹内会创建出一个.git的隐藏目录
    • 这就是我们的本地仓库
  4. 编写一个index.html index.js的文件

  5. 命令行输入git add .

    • 点 代表全部,上传本文件夹的所有文件
    • 添加到暂存区
    • 本质上:
    • 在这里插入图片描述
  6. 提交代码

    • 命令行输入git commit -m '第一次提交代码'
    • -m 后面跟的是注释
  7. 在这里插入图片描述

  • 如果出现以上情况,别慌,不是你的错
  • 我们需要给这个git本地仓库取上名字和邮箱地址
  • 这样才符合规范,具体操作如下
  • 输入git config --global user.name 'Draven' 取名
  • 输入git config --global uiser.email '1213456783@qq.com'传递邮箱信息
  • 然后再执行我们刚才失败的命令git commit -m '注释'就可以啦
  • 在这里插入图片描述

2.3、修改

  • 当我们修改了已上传文件后,再查看提交状态是这样的
    • 在这里插入图片描述

    • 说明文件已经修改了,需要重新提交(先上传到暂存区,然后再提交到本地仓库)

    • 1. git add .2. git commit -m '注释'

    • 切记,一定要加注释,不然会出现以下界面

    • 在这里插入图片描述

      • 届时如果你没学过linux,也许你这辈子都会困在里面
      • 当然我们会有解决办法
      • 首先我们按下键盘i进入输入状态
      • 在第一行中留下我们的注释
      • 按下esc退出编译器模式
      • 而后按下:键,进入命令行
      • 输入wq,表示退出,这样就可以逃离那个是非之地了。
  • 再次输入git status查看状态就发现一切都恢复如初啦
    • 在这里插入图片描述

2.4、查看历史版本

  • 经过我们刚才的2.2和2.3步骤,我们已经提交过两个版本了
  • 我们输入git log可以查看提交过的提示版本
  • 在这里插入图片描述

2.5、回退历史版本

  • 我们查看过提交记录后,想要回退到某个历史版本可以这样做哦-》

  • 输入git reset --hard HEAD^回退到上一个版本

  • 在这里插入图片描述

  • 这样就回退完成啦

  • 我们再使用git log查看提交记录就会发现没有第二次那个版本啦

  • 在这里插入图片描述

2.6、起死回生

  • 我们回退后,又觉着回退之前的那个版本好用,那怎么办呢?

  • 我有一计起死回生之术

  • 输入git reflog,查看操作记录

    • 在这里插入图片描述
  • 我们把需要的版本,前的16进制代码复制或记录下来(👆7位黄色16进制编码)

  • 比如我们需要恢复到第二个版本的代码

    • 先把他的16进制编码复制下来
    • 输入git reset --hard 3719190
    • 在这里插入图片描述
  • 如此我们的第二版本复活啦

  • 我们再去查看提交记录就会发现两个版本都在啦

  • 在这里插入图片描述

三、git远程仓库

  • 当然,我们二大节中的知识只不过是让我们在路由等配置尚未完工时,自己再私底下使用的本地仓库

  • 本地仓库不足以把所有的代码合并到一起,这是显而易见的

  • 所以我们需要使用git远程仓库来合并代码

  • 我们要用的远程仓库是gitee

3.1、使用gitee

  1. 进入官网
    • https://gitee.com/
  2. 我们点击加号,新建仓库
    • 在这里插入图片描述

    • 在这里插入图片描述

    • 这样子配置刚刚好啦

  3. 下面是创建好仓库后给的提示,3.2配置数据源参考图中数据(自己的)
    • 在这里插入图片描述

3.2、配置本地仓库参数

  • emmmm,在我们向gitee传输之前,我们需要做一步不可缺少的步骤

  • git config --global user.name "杨清壹"
    git config --global user.email "10274713+shiqingyi@user.noreply.gitee.com"
    
    • 是很眼熟,但只有这样才能让我们传输的时候让git找到我们的远程仓库
    • 在这里插入图片描述
  • 配置远程源:

    • 添加一个远程的源

      • git remote add origin https://gitee.com/shiqingyi/test2022.git
    • 推送

      • git push -u origin master
    • 第一次推送需要用户名个密码

      • 在这里插入图片描述
    • 用户名是我们user.name时候的名字

    • 密码是自己gitee的密码

    • 用户名或密码错误的界面是这样的

      • 在这里插入图片描述
    • 成功的界面是这样的

      • 在这里插入图片描述
    • 如果失败后一直输入一直错,你就需要去百度搜索一下win10如何删除凭证,因为这是你不珍惜第一次输入的机会曹成的后果

3.3、查看gitee仓库

  • 推送后,我们刷新这个界面

    • 在这里插入图片描述
  • 刷新后

    • 在这里插入图片描述
  • 我们推送的代码文件就被上传到里面啦

3.4、修改后推送

  • 在我们修改源代码之后需要重新推送上传,整套流程如下
  1. 修改源代码
  2. 添加到暂存区
    • git add .
  3. 提交到本地仓库
    • git commit -m '修改之后,第一次尝试推送'
  4. 推送
    • git push -u origin master

四、git两人协作-非冲突

小智

  • 在我们进入公司做项目时

  • 第一步是要公共仓库的地址

    • 在这里插入图片描述
  • 届时先用自己的仓库地址当成项目组长分发下来的地址使用

    • https://gitee.com/shiqingyi/test2022.git
  • 此时我们新建一个文件夹,下面会演示整套流程

流程

  1. 在新建的文件夹下打开git命令框

  2. 使用克隆命令

    • git clone https://gitee.com/shiqingyi/test2022.git
    • 将地址内附带的资源全部的克隆到本地仓库
  3. 把下载下来的文件用编辑软件打开

  4. 新建组件等操作,进行分布代码开发

  5. 输入cd 文件夹名/ 进入拷贝的文件夹

  6. 在保证是进入到拷贝下来的文件夹内后 执行推送

    • git add .

    • git commit -m '今天的工作'

    • git push -u origin master

这样就完成代码上传啦

小杨

  • 在小智上传了一版代码之后,小杨原先下载的代码不会自动更新
  • 这样就造成了提交冲突,两个人上传时,版本不统一
  • 也就是说后来人上传代码需要其他操作
  • 否则会报以下如图的错误

在这里插入图片描述

解决方案

我们需要跟着黄色警告的指示做,也就是 pull 拉取以下

  1. 输入拉取更新命令

    • git pull roigin master

    • 它会拉取服务器的代码,并跟本地代码进行合并提交

    • 把最新的代码合到本地目录下

    • 然后你就会发现我们又进入了这个烦人的界面

    • 在这里插入图片描述

    • 不要慌,它只是想让我们留条记录信息 也就是注释

    • 我们只需要把黄色部分改成我们的注释信息,然后按下esc键,输入:wq即可退出,然后更新成功

    • 在这里插入图片描述

    • 提交过后我们执行一遍git push origin master命令即可上传成功

    • 在这里插入图片描述

注意: 一定要在 git add. git commit -m ‘’ 之后再使用pull拉取代码。

五、git两人协作-冲突

  • 我们在开发中,根本无法避免自己或别人在修改同一个文件后上传

  • 当然,因为这个错误头疼是开发者的一大避讳

  • 演示一下

  • 首先,我们用编译软件分别修改不同人下载下来的资源,修改同一个文件

    • 在这里插入图片描述
  • 情况就是这么个情况

  1. 我们先用xiaozhi角色进行上传

    • 在这里插入图片描述

    • 显而易见,xiaozhi这东西库库上传,是挺爽的

  2. 我们再用另外一个角色上传

    • 在这里插入图片描述

    • 当然,这个错误对于我们来说很容易解决

    • 只需要pull拉取一遍数据再上传就可以解决

    • 不过,我们要考虑上传之后xiaozhi角色上传的代码就会被覆盖,很容易造成矛盾

    • 在这里插入图片描述

    • 注意,红框内的意思是自动合并失败

    • 使用pull拉取完之后代码是这样的

      • 在这里插入图片描述
    • 这种情况我们只能手动处理了

    • 所以我们不要再逼git了,喊人! 👇

    • (一支穿云箭,千军万马来相见)

  3. 在我们处理完第二步之后,重新给不同角色的同一个文件进行修改

    • 在这里插入图片描述

    • 此时,我们在web strom中安装GitToolBox插件

      • 在这里插入图片描述
    • 安装后我们输入用户名和密码

      • 在这里插入图片描述
    • 在我们装好插件后,跟着步骤依次上传

      • 在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

    • 最后一个上传的时候会碰到这么一个问题

      • 在这里插入图片描述
    • 选择自己需要的选项就可以啦

六、git分支

6.1git存在的意义

  • 分支为什么要存在?
  • 当然,一个好的APP需要再开发部署完1.0版本之后,需要不断的更新迭代
  • 我们总不能对着1.0源码进行编译和上传,这样会影响用户体验
  • 所以我们的解决方式是将1.0版本拷贝一份至新的git空间,我们对着拷贝后的代码进行编译和更新,在敲版之后,进行更新上传
  • 而拷贝的这一份,正是我们的git分支

6.2、使用

查看git所有分支

git branch -a

创建新的分支

git checkout -b devDraven

  • 新建draven文件,或对我们原有的文件进行修改

  • 提交

    • git add .
    • git commit -m 'fiexd 修改'
  • 切换到主分支

    • git checkout master
  • 会发现,在新分之内的操作不会带到我们的主分支当中

  • 合并分支

    • 切换到主分支中
    • git merge devDraven
    • 合并后在该分支上的东西会合并到master主分支上
  • 上传

    • 切换到该分支中
    • git push origin master
  • 上传分支

    • 先将命令行切换到需要上传的分支
    • git push origin devDraven
    • 在这里插入图片描述
  • 在服务器删除子分支

    • 切换到该分支中
    • git push origin :devDraven
  • 在本地仓库删除子分支

    • 切换到主分支中
    • git branch -d devDraven

七、vue项目git注意

  1. 初始化本地仓库
  2. 提交
    • 在这里插入图片描述

      • 如果第一次拉取文件出现以上问题,说明git没有完全授权,我们只需要输入git config --global --add safe.directory "*";命令进行授权
    • 在这里插入图片描述

      • 这种情况不要慌,这个面板是为linux做的,我们某些字符它会自动转译,而这正是转译的操作,不用我们留意
  3. 添加远程源
  4. 创建分支
  5. 上传(推送)
  6. 删除本地仓库的分支
  • 这样做,每个人下载下来都没有办法用,因为少了许多依赖(文件夹)

  • 当然,如果你想要从别人那儿把vue项目下载下来并运行,我想这不是我能帮你解决的,你可以把以下这段话提交到www.baidu.com,它会给你答案

    • ​ 在git下载的vue项目怎么跑起来

八、开发流程&云服务器

开发流程

…(此处省略很多字),详情请找到本人资讯或添加如下WX

CBWR-K

云服务器

  • 实在没钱搞

九、nginx上线

  • 同上

git命令

命令说明
git init初始化本地仓库
git add .上传文件到暂存区
git status查看git此时提交状态
git commit -m ‘注释’提交到本地仓库
git config --global user.name ‘Draven’为git本地仓库取名
git config --global uiser.email ‘1213456783@qq.com’为git本地仓库传递邮箱信息
git log查看提交记录
git reset --hard HEAD^ 可以多个^回退到上^个版本
git reset --hard HEAD~number回退到上number个版本 number为数字
git reflog查看操作记录
git remote add origin 仓库地址添加一个远程的源
git push -u origin master推送
朝 orgin 这个地址推,推我们的本地仓库 master
ls查看当前目录的所有文件
git pull origin master拉取服务器代码,并完成提交(提交至本地仓库)
git clone gitUrl拷贝服务器源码,giturl指的是组长提供的链接
分支-👇
git branch -a查看所有分支
git checkout -b devDraven创建新的分支
git checkout master切换到主分支
git merge devDraven合并分支(先切换到主分支,devDraven为子分支名)
git push origin devDraven上传分支(切换到devDraven分支执行)
git push origin :devDraven在服务器上删除此分支(切换到devDraven分支执行)
git brcnch -d devDraven在本地仓库删除子分支(切换到主分支执行)

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

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

相关文章

搜索与图论-BFS

文章目录一、BFS1. BFS 简介2. BFS 的基本思想3. BFS 的实现步骤4. BFS 的实际演示二、BFS 例题——走迷宫具体实现1. 样例演示2. 实现思路3. 代码注解4. 实现代码三、BFS 例题——八数码具体实现1. 实现思路2. 代码注解3. 实现代码一、BFS BFS 的关键点是状态的选取和标记。 …

iwebsec靶场 SQL注入漏洞通关笔记13-二次注入

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

力扣(LeetCode)133. 克隆图(C++)

dfs哈希表图 先深搜建立所有点&#xff0c;加入哈希表。再遍历哈希表&#xff0c;按照拷贝前后的结点&#xff0c;拷贝边。最后返回某一结点&#xff0c;即为所求。 class Solution { public:unordered_map<Node*,Node*> mp;Node* cloneGraph(Node* node) {if(!node) r…

UNPV2 学习:Pipes and FIFOs 学习记录

命名管道 fifo 的特点 特点描述 打破了匿名管道只能在父子进程间使用的限制&#xff0c;可以在无亲缘关系的进程之间使用同一个 fifo未指定 NONBLOCK 参数 open fifo 时可能会 block&#xff0c;不当的编码可能会导致进程死锁当请求读超过 fifo 中现有数据大小的数据时&#…

基于yolov5轻量级的学生上课姿势检测识别分析系统

在我之前的博文中已经做过关于人体姿势识别人体姿态检测的博文&#xff0c;都是比较早期的技术模型了&#xff0c;随机技术的迭代更新&#xff0c;很多更加出色的模型陆续出现&#xff0c;这里基于一些比较好用的轻量级模型开发的姿态检测模型。 原始博文如下&#xff1a; 《…

HTML+CSS+JS家乡主题网页设计 学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

BERT模型的详细介绍

Bert模型的基本原理是什么? BERT 来自 Google 的论文Pre-training of Deep Bidirectional Transformers for Language Understanding&#xff0c;BERT 是“Bidirectional Encoder Representations from Transformers”的首字母缩写&#xff0c;整体是一个自编码语言模型&…

全文检索-Elasticsearch-入门

文章目录前言一、基本概念1.1 Index&#xff08;索引&#xff09;1.2 Type&#xff08;类型&#xff09;1.3 Document&#xff08;文档&#xff09;1.4 ES与关系型数据库对比1.5 倒排索引二、初步检索2.1 _cat2.2 索引一个文档&#xff08;保存&#xff09;2.3 查询文档前言 全…

[静态时序分析简明教程(八)]虚假路径

静态时序分析简明教程-虚假路径一、写在前面1.1 快速导航链接二、虚假路径2.1 set_false_path2.2 -from -to -through2.3 上升/下降沿 约束2.4 建立/保持 约束2.5 虚假路径示例三、总结一、写在前面 一个数字芯片工程师的核心竞争力是什么&#xff1f;不同的工程师可能给出不同…

数据结构 | 堆的向上调整和向下调整算法【奇妙的堆排序】

堆一、堆的概念及结构二、向上调整算法⭐⭐1、算法思路分析【孙子的谋权篡位之旅&#x1f451;】2、代码详情解说三、向下调整算法⭐⭐⭐⭐⭐1、算法图解分析【高处不胜寒&#x1f192;趁早做打算】2、代码考究精析四、堆的数据结构各接口算法实现结构体的定义及声明1、堆的初始…

Windows-》CMD命令

CMD命令【1】Windows-》CMD命令1.mstsc&#xff1a;打开远程桌面连接。2.services.msc&#xff1a;打开本地服务设置。3.notepad&#xff1a;打开记事本。4.control&#xff1a;打开控制面板。5.regedit&#xff1a;打开注册列表编辑器。6.compmgmt.msc---设备管理器。&#xf…

[附源码]计算机毕业设计springboot医疗器械公司公告管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

计算机图形学中的曲线问题——贝塞尔曲线的绘制

贝塞尔曲线的绘制 由于 CSDN 的博客修改字数的限制&#xff0c;我们不得不将这一部分放到一个新的博客中。原文详见&#xff1a; GGN_2015 计算机图形学中的曲线问题 贝塞尔曲线的几何作图法 在上面介绍儿时的回忆中&#xff0c;我们介绍了对于抛物线绘制的一种方法。如下图所…

Egg 1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.5 创建服务

Egg Egg 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Egg1. 快速开始 Quick Start1.3 一步步 Step by Step1.3.5 创建服务Hacker News API1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.5 创建服务 在实际开发中&#xff0c;控制器…

[附源码]计算机毕业设计学生综合数据分析系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Linux根文件系统说明和常用命令

Linux根文件系统说明【1】Linux内核由哪几个子系统组成&#xff1f;【2】Linux下软连接和硬链接的区别&#xff1f;【3】sync【4】shutdown –h now【5】shutdown –h 20:25【6】shutdown –r now【7】shutdown –r 10【8】reboot【9】halt【10】Linux根文件系统说明【11】此主…

机器学习 分类、回归、聚类、特征工程区别

一、分类和回归的区别 简单理解分类和回归的区别在于输出变量的类型不同。 定量输出称为回归&#xff0c;或者说是连续变量预测&#xff1b;定性输出称为分类&#xff0c;或者说是离散变量预测。 举个例子&#xff1a; 预测明天的气温是多少度&#xff0c;这是一个回归任务&…

AD入门学习—元件库(原理图库)的创建

目录 1.1 电阻类、电容类、电感类元件创建 1.2 LED灯、按键类元件创建 1.3 IC芯片类元件创建 学习目录 创建一个PCB工程&#xff0c;原理图库&#xff0c;原理图。 1.1 电阻类、电容类、电感类元件创建 左侧的菜单栏不见了:视图&#xff0c;panels&#xff0c;projects。 按…

JavaWeb(三)

前言&#xff1a;JavaWeb的三大组件Servlet&#xff0c;Filter&#xff0c;Listener。是Java EE Web服务规定的服务器动态组件&#xff0c;由开发者编写&#xff0c;由web容器创建&#xff0c;加载顺序为Listener->Filter->Servlet。 当来了一个application请求 呢么web三…

一文读懂Java中的String类之助力Java进阶之路

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;Jovy. &#x1f35f;博客主页…