Git (2)

文章目录

  • 1. 删除文件
  • 2. 分支管理
    • 2.1 理解分支
    • 2.2 分支创建 , 分支切换
    • 2.3 分支合并
    • 2.4 删除分支
    • 2.5 合并冲突
    • 2.6 合并模式
    • 2.7 分支策略
    • 2.8 bug 分支
    • 2.9 强制删除分支
  • 3. 远程操作
    • 3.1 创建远程仓库
    • 3.2 克隆远程仓库
    • 3.3 推送
    • 3.4 拉取
    • 3.5 gitignore 文件
    • 3.6 配置别名
  • 4. 标签管理
    • 4.1 理解标签
    • 4.2 标签相关操作
  • 5. 总结

1. 删除文件


删除版本库中的文件 :


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述

2. 分支管理

2.1 理解分支


分支属于 Git 杀手级别的功能 , 下面通过一个小故事简单了解一下啥事分支.


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述

2.2 分支创建 , 分支切换


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述


图五 :

在这里插入图片描述

2.3 分支合并


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

2.4 删除分支


在这里插入图片描述

2.5 合并冲突


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述


图五 :

在这里插入图片描述


图六 :

在这里插入图片描述


图七 :

在这里插入图片描述

2.6 合并模式


到目前为止,我们已经使用了 两次 merge 操作 , 第一次 使用 git merge 操作 将 dev 分支和 master 分支合并的过程是非常顺利的 , 第二次 merge 操作 出现了 合并冲突, 我们在解决 合并冲突 ,进行了 一次 commit 操作 .

对于这两次 merge 操作就分别对应 Git 提供的两种合并模式.

  1. 普通合并模式 (Fast-forward Merge)
    • 当要合并的分支的提交历史与目标分支的提交历史没有分叉时 , Git 会执行快速向前合并
    • Git 只需要将目标分支指向要合并的分支的最新提交即可,不会创建新的合并提交。


关于 Fast-forward Merge 模式 ,还是通过命令带大家熟悉一遍


在这里插入图片描述

  1. 合并冲突
    • 如果要合并的分支与目标分支同时对同一文件的同一部分进行了修改,Git 将无法自动合并更改,导致合并冲突。
    • 在合并冲突发生后,你需要手动解决冲突,编辑包含冲突的文件,并在文件中选择保留哪些更改以及如何组合它们。
    • 解决冲突后,使用 git add 命令标记文件为已解决,然后使用 git commit 提交合并结果。


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述

2.7 分支策略


在实际开发中 , 我们应该按照几个 基本原则进行分支管理 : 首先 master 分支应该是非常稳定的, 也就是仅用来发布新版本 , 平时不能再上面干活.


在这里插入图片描述


这里关于分支策略先了解到这里,后面 会通过 实践 慢慢带大家理解 ,当前只需要知道 我们可以通过 分支实现多人开发 .

2.8 bug 分支


这里介绍一个 在使用 Git 的时候 遇到的场景 .

在这里插入图片描述


关于 拉去 一个 专门 解决 bug 的分支 ,然后修改 bug ,合并 等操作 ,上面都说过 , 这里就不再演示了 , 如果不会可以再回去看看上面的步骤 , 下面就来看另外一个场景.


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述


图五 :

在这里插入图片描述


图六 :

在这里插入图片描述


图七 :

在这里插入图片描述


图八 :

在这里插入图片描述

2.9 强制删除分支


看完 bug 分支 ,这里再来介绍一个将来再使用 git 中可能遇到的问题.


图一 :

在这里插入图片描述


最后对分支做个小结:

分⽀在实际中有什么⽤呢?假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50%的代码,如果⽴刻提交,由于代码还没写完,不完整的代码库

会导致别⼈不能⼲活了。如果等代码全部写完再⼀次提交,⼜存在丢失每天进度的巨⼤⻛险。现在有了分⽀,就不⽤怕了。你创建了⼀个属于你⾃⼰的分⽀,别⼈

看不到,还继续在原来的分⽀上正常⼯作,⽽你在⾃⼰的分⽀上⼲活,想提交就提交,直到开发完毕后,再⼀次性合并到原来的分⽀上,这样,既安全,⼜不影响别⼈⼯作。

并且 Git ⽆论创建、切换和删除分⽀,Git在1秒钟之内就能完成!⽆论你的版本库是1个⽂件还是1万个⽂件。

3. 远程操作


到目前为止我们所学习的操作都是在本地完成的 , 比如 : 工作区 ,暂存区 ,版本库 之间的操作 (git add xxx , git commit -m “xxx” 等命令) .


另外 : 关于我们对 Git 的了解其实只了解了一半 Git , 知道了 Git 是一个 版本控制系统 , 下面来了解另外一半 分布式 , Git 其实是一个分布式版本控制系统.


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

GitHub: Let’s build from here · GitHub

工作台 - Gitee.com


下面的内容, 会使用 Gitee 来演示 ,GitHub 是一样的 .

3.1 创建远程仓库


图一 :
在这里插入图片描述


图二 :

在这里插入图片描述


图三 :

在这里插入图片描述


图四 :

在这里插入图片描述


图五 :

在这里插入图片描述


图六 :

在这里插入图片描述


简单 介绍完 gitee 里面的仓库 ,下面我们将远程仓库 克隆到本地仓库.

3.2 克隆远程仓库


图一 :

在这里插入图片描述


使用: HTTPS 协议 克隆远程仓库

在这里插入图片描述

使用 SSH 协议 完成克隆操作


图一 :

在这里插入图片描述

图二 :

在这里插入图片描述


克隆完成远程仓库 ,接下来我们就来 将 本地仓库的修改 推送到远程仓库中

3.3 推送


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述


注意: 这里 远程仓库 和 本地仓库 要建立链接 才能进行 推送 , 这里 本地仓库的 master 和 远程 仓库的master 之所以 能够推送是因为 在克隆的时候 git 会自动帮我们 建立联系 (只针对 master 分支)

3.4 拉取


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

3.5 gitignore 文件

在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎 么让 Git 知道呢?


在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件 名填进去,Git 就会⾃动忽略这些⽂件了。 不需要从头写 .gitignore ⽂件,

gitee 在创建仓库时就可以为我们⽣成,不过需要我们主动勾选⼀ 下:

在这里插入图片描述


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

3.6 配置别名

在这里插入图片描述

4. 标签管理

4.1 理解标签


标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬ 发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。


这有什么⽤呢?

相较于难以记住的 commit idtag 很好的解决这个问题,因为 tag ⼀定要给⼀ 个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。

4.2 标签相关操作


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

上面在 本地 进行了一些标签操作 (新增 , 查看 , 删除 标签) , 下面我们在 远程仓库中进行一些标签操作.


图一 :

在这里插入图片描述


图二 :

在这里插入图片描述

5. 总结

本文使用到的命令 :

命令功能
git branch查看本地分支
git branch xxx创建本地分支
git checkout xxx切换分支
git cat-file -p xxx查看一下 dev 存放的 ·commitId 指向的对象
git merge xxx合并分支
git branch -d xxx删除 xxx 分支
git checkout -b xxx创建 并切换到 xxx 分支
git merge --no-ff -m “xxxx” xxx(分支名)使用非 Fast-forward 模式进行合并
git clong + 协议提供的克隆链接将远程仓库克隆到本地仓库
git push + origin (远程仓库名) + 分支名(本地仓库) : 分支名 (远程仓库)将本地仓库 修改 提交到远程仓库
git pull + origint (远程仓库名) + 分支名(本地仓库) : 分支名 (远程仓库)将远程仓库的代码拉取到 本地仓库
git config (–global) + alias.xxx(别名) + xxxx (需要别名的命令)别名操作
git tag xxx创造 标签
git tag查看标签
git tag -d xxx(要删除的标签名)删除标签
git show xxx (标签名)查看标签描述
git push 标签名对新增的标签进行推送
git push origin --tags将所有的标签进行推送
git push origin : xxxx对 本地删除了的标签进行推送 (删除远程仓库中的标签)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023-08-11 LeetCode每日一题(矩阵对角线元素的和)

2023-08-11每日一题 一、题目编号 1572. 矩阵对角线元素的和二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1&#xff1…

【设计模式——学习笔记】23种设计模式——中介者模式Mediator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入案例一普通实现中介者模式 案例二 介绍基础介绍登场角色尚硅谷 《图解设计模式》 案例实现案例一:智能家庭类图实现 案例二:登录页面逻辑实现说明类图实现 总结文章说明 案例引入 案例一 普通实现 在租房过程中,客户可能…

推荐系统工作小结

最初的构想 由于我们的技术团队中并没有人真正用大数据的方法做过推荐系统。所以我们定的步骤是先解决有没有的问题。然后再持续地进行效果优化的工作。 现状 但一方面考虑到要快速上线。另一方面也希望对推荐系统的效果有一个合理的参照。我们打算先使用达观数据的推荐系统云…

【JavaScript】怎么测试方法的兼容性

利用网站测试方法的兼容性 打开网站:https://caniuse.com在里面输入要检测的方法,红色代表不支持,绿色代码支持。

玩赚音视频开发高阶技术——FFmpeg

随着移动互联网的普及,人们对音视频内容的需求也不断增加。无论是社交媒体平台、电商平台还是在线教育,都离不开音视频的应用。这就为音视频开发人员提供了广阔的就业机会。根据这些年来网站上的音视频开发招聘需求来看,音视频开发人员的需求…

面试热题(单词搜索)

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相…

2023免费苹果mac电脑清理垃圾软件CleanMyMacX

在买新电脑的时候,很多用户都会优先考虑Mac电脑,因为它有着优秀的性能、设计和安全性。但是,随着时间的推移,mac电脑也会积累很多不必要的文件,占用大量的磁盘空间,影响电脑的运行速度和效率。这些文件主要…

【STM32】小电流FOC驱控一体板(开源)

FOC驱控一体板http://链接: https://pan.baidu.com/s/12HoV9yDlMC5QVGNCJ5tK0w 提取码: 1111 主控芯片stm32f103c8t6 驱动芯片drv8313 三相电流采样 根据B站一个UP主的改的(【【自制】年轻人的第一块FOC驱动器】),大多数元器件是0805&…

Jmeter 配置环境变量,简明教程专享

通过给 JMeter 配置环境变量,可以快捷的打开 JMeter: 打开终端。执行 jmeter。 配置环境变量的方法如下。 Mac 和 Linux 系统 在 ~/.bashrc 中加如下内容: export JMETER_HOMEJMeter所在目录 export PATH$JAVA_HOME/bin:$PATH:.:$JMETER…

uniapp----分包

系列文章目录 uniapp-----封装接口 uniapp-----分包 目录 系列文章目录 uniapp-----封装接口 uniapp-----分包 前言 二、使用步骤 1.创建文件 ​编辑 2.min.js的修改 2.1 subPackages 代码如下(示例): 2.2 preloadRule 代码如下&am…

【QT】 QTabWidgetQTabBar控件样式设计(QSS)

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT控件QTabWidget&QTabBar的样式设计,介绍两者可以自定义的内容,以及如何定义,希望对各位小伙伴有所帮助! 感谢各位小伙伴…

Python机器学习实战-建立AdaBoost模型预测肾脏疾病(附源码和实现效果)

实现功能 建立AdaBoost模型(集成学习)预测肾脏疾病 实现代码 import pandas as pd import warnings warnings.filterwarnings("ignore") pd.set_option(display.max_columns, 26)#读取数据 df pd.read_csv("E:\数据杂坛\datasets\kidn…

SecureCRT密码破解(实验环境:win10,SecureCRT Version 9.1.0 (x64 build 2579))

实验环境:win10, SecureCRT:Version 9.1.0 (x64 build 2579) 1. SecureCRTCipher.py 文件 #!/usr/bin/env python3 import os from Crypto.Hash import SHA256 from Crypto.Cipher import AES, Blowfishclass SecureCRTCrypto:def __init_…

计时器setTimeout()函数、setInterval()函数

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🏅计时器setTimeout(函数名,延迟时间)结束计时器setTimeout 🏅计时器setInterval(函数名,延迟时间&a…

CMake: 检测并使用OpenMP的并行环境

CMake: 检测OpenMP的并行环境 导言OpenMP简介项目结构CMakeLists.txt相关源码输出结果 导言 目前,市面上的计算机几乎都是多核机器,对于性能敏感的程序,我们必须关注这些多核处理器,并在编程模型中使用并发。OpenMP是多核处理器上…

解决Redis启动时闪退 报错Creating Server TCP listening socket *:6379: bind: No error

找到安装redis的文件夹 在地址输入cmd 依次输入如下 redis-cli.exe shutdown exit redis-server.exe redis.windows.conf

[GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片

[GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片 文章目录 [GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片1. 写在前面:1.1 应用场景:1.2 数据集情况:1.3 实验原理讲解和分析(简化版&#x…

django boostrap html实现可拖拽的左右布局,鼠标拖动调整左右布局的大小或占比

一、实现的效果 最近需要在Django项目中,实现一个左右布局的html页面,页面框架使用的是boostrap。但这个布局不是简单的左右分栏布局,而是需要实现可以通过鼠标拖拽的方式动态调整左右两侧布局的大小和占比。效果大致如下: 一开始,页面分为左右两块布局: 鼠标放到中间的…

宋浩高等数学笔记(十一)曲线积分与曲面积分

个人认为同济高数乃至数学一中最烧脑的一章。。。重点在于计算方式的掌握,如果理解不了可以暂时不强求,背熟积分公式即可。此外本贴暂时忽略两类曲面积分之间的联系,以及高斯公式的相关内容,日后会尽快更新,争取高效率…

登录界面中图片验证码的生成和校验

一、用pillpw生成图片验证码 1、安装pillow pip install pip install pillow2、下载字体 比如:Monaco.ttf 3、实现生成验证码的方法 该方法返回一个img ,可以把这个img图片保存到内存中,也可以以文件形式保存到磁盘,还返回了验证码的文字…