被禁止访问网站怎么办/郑州免费做网站
文章目录
- 1.git的工作流程
- 2.git的工作环境
- 3.git的基本操作
- (1)git init
- (2)git status
- (3)git add
- (4)git commit
- 4.版本控制
- (1)git reflog与git log
- (2)再增加两个版本
- (3)git reset --hard 版本号
- (4)两个指针
- 4.分支管理
- (1)对分支的理解
- (2)git branch和git branch -v
- (3)git checkout 分支名
- (4)git merge
- 5.远程库操作
- (1)基本操作
- (2)几个区别
- (3)使用格式
1.git的工作流程
其中github和gitee是基于互联网的,而gitlab是基于局域网的。公司一般使用的是gitlab。
2.git的工作环境
下载安装好git之后,选择一个工作目录,并在该目录右键鼠标,点击git bash here,当然也可以git gui here它是一个图形界面但是由于太丑了,所以一般使用git bash。
git bash的命令和linux是一致的,虽然这里是windows系统。甚至vim也是可以使用的
3.git的基本操作
(1)git init
该操作用于初始化本地库,在终端输入git init后可以在当前目录看到一个.git的文件夹(需要查看隐藏文件)。
注意该文件夹中的内容是不可以修改的创建成功的话就可以进行基本的git操作了。
(2)git status
用于查看当前库的状态:
可以发现出现了三行内容,其中第一行表示的意思是处于master分支中,第二行表示的是还没有提交任何东西,第三行表示的是没有什么需要提交。
这个命令我们在之后的git学习中会频繁的使用到。
(3)git add
使用vim来创建一个test.txt文件,来模拟一下提交过程:
以上是随便写的文件的内容,创建文件之后再使用git status操作:
可以看到test.txt是红色的,表示没有放入暂存区(当前该文件只在工作区存在),并且终端给了提示,使用git add操作将其放入暂存区。
当进行git add操作之后:
此时可以看到test.txt变成了绿色,表示已经将它放入了暂存区,并且给了如下提示:
git rm --cached test.txt
该条指令的作用就是从暂存区删除test.txt,如果删除test.txt会再度变为红色。
(4)git commit
该条指令用于从暂存区提交到本地库,通常伴随使用-m选项来写日志
其中提交之后会打印一段话,表示提交成功了,并出现了一个数字b26d1b8,它是版本号的一部分,通常代表版本号。
此时再使用git status可以看到:
第一行表示的是在主分支中,第二条表示的是没有什么可以提交了,并且树时干净的,即没有做任何版本修改。
4.版本控制
(1)git reflog与git log
git reflog输出日志信息,git log也输出日志信息不过更加详细
其中head是一个指针,它指向的是主分支b26d1b8表示的是版本号,master分支指向该版本号。
(2)再增加两个版本
使用git add和git commit再使用以上方法增加两个版本,这里有一个细节,在修改test.txt并进行commit之后会看到
其中我修改了一行内容,可以发现实际操作是删除了一行并加入了一行,也就是说git是按行对文件操作的,而不能在行内追加。
此时再输出日志信息可以看到:
此时head指针指向的是master分支,master分支指向的是版本3
(3)git reset --hard 版本号
当处于第三个版本的时候,可以看到test.txt的内容是
如果我们想回退到版本2或者版本1呢?使用以下指令可以回退
git reset --hard 版本号
此时就回退到了版本2,再查看test.txt的内容,发现就是版本2的内容了
那么如果我们此时修改版本2呢?修改后提交的还是版本2吗?显然不是,修改版本2再提交就是第4个版本了:
(4)两个指针
通过以上的描述我们发现其实是有两个指针的,其中Head指针指向的是分支号,master指针指向的是版本号:
我们还可以在.git/refs/heads/master中看到当前分支以及版本号信息。
4.分支管理
(1)对分支的理解
要完成一个项目需要做不同的功能,可以将每个功能作为一个分支最终合并分支形成一个完整的项目:
比如在这里,首先将master分支拷贝两个分支branch1和branch2来完成不同的任务,其中branch1完成任务后提交,如果提交后发生了错误,就建立一个新的分支hot-fix来进行紧急修复,修复后再与branch2完成的任务进行合并。
分支的作用有两个:解耦(安全)和并行开发(提高效率)。
(2)git branch和git branch -v
使用git branch可以创建分支,使用git branch -v可以查看分支:
*所在的位置就是当前所在的分支。
(3)git checkout 分支名
切换分支
(4)git merge
git merge分为两种情况,一种情况发生冲突,一种情况没有发生冲突,一种是发生了冲突。
发生冲突的意思是两者都对代码的同一个位置进行了修改。
首先来看没有发生冲突的情况:
我们对hot-fix的版本做如上修改。并进行提交到本地库的操作。
然后我们切换到master分支并进行法分支合并,此时可以先查看一下master分支中的内容:
注意,由于master分支是没有做任何修改的,因此合并是不冲突的。冲突的意思是两者都发生了修改:
此时执行git merge指令,注意,当前我们是处于master分支的,是hot-fix分支来找我们进行合并:
合并之后我们发现内容变成了这个样子。
下面来看有冲突合并的例子,即当分支做了修改之后,master的分支代码也进行了修改。
此时还可以分为两种情况,第一种情况是,master和hot-fix没有修改代码的同一个位置,第二种情况是master和hot-fix修改了代码的同一个位置。
注意,修改之后需要进行提交,否则会影响其他分支。
当没有修改代码同一个位置的时候,与没有发生冲突的结果是一样的,这里不作演示了,当修改的是代码的同一个位置的时候:
首先我们将hot-fix分支进行修改。(注意需要提交)
此时我们再切换回主分支,对主分支的倒数第二行增加内容(冲突),再添加一些其他内容,并提交
此时再进行分支合并,可以看到文件的结果变为:
变成了使用<<<<和===以及>>>>来分割的内容,其中既包含主分支的内容,也包含hot-fix分支的内容。
需要程序员手动对代码进行修改之后再进行提交。因为git无法帮助我们自动选择了。
此时我们打开vim将代码修改如下:
然后再进行提交,注意这里还有一个问题,此时如果commit加上文件名就会发生报错:
在commit的时候不能加入文件名就可以提交成功了。
值得注意的是由于是在master进行分支合并,因此是将hot-fix的内容合并到master中,而hot-fix的内容没有发生改变。
5.远程库操作
(1)基本操作
远程库操作比较简单,只需要记住三个指令即可:
git clone
git push
git pull
git clone的作用是将别人已经写好并提交的库克隆下来,自己更新迭代之后使用git push提交上去,想得到别人更新迭代的内容只需要git pull即可,这里用一张图来表示执行的顺序:
其中pull作用是拉取修改之后的内容。
(2)几个区别
git clone与git pull区别
git clone和git pull的区别在于“git clone”是在本地没有版本库时,将远程库整个下载到本地;而“git pull”是在本地有版本库时,从远程库中获取最新commit数据,并合并到本地。
同时在开发时要尽量保证push的内容没有版本冲突。如果不想与本地分支合并,可以使用git fetch操作。git pull=git fetch+git merge
git clone与git fetch区别
而git clone和git fetch的区别在于git clone克隆的是整个远程库。git fetch克隆的是远程库的一个分支。
(3)使用格式
$ git clone <版本库的url>
$ git pull <远程主机名> <远程分支名>:<本地分支名>#方法一
$ git fetch origin master #从远程的origin仓库的master分支下载代码到本地的origin maste
$ git log -p master.. origin/master #比较本地的仓库和远程参考的区别
$ git merge origin/master #把远程下载下来的代码合并到本地仓库,远程的和本地的合并# 方法二
$ git fetch origin master:temp #从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp #比较master分支和temp分支的不同
$ git merge temp #合并temp分支到master分支
$ git branch -d temp #删除temp
相关文章:

Git的基本操作
文章目录1.git的工作流程2.git的工作环境3.git的基本操作(1)git init(2)git status(3)git add(4)git commit4.版本控制(1)git reflog与git log(2)再增加两个版本(3)git reset --hard 版本号(4)两个指针4.分支管理(1)对分支的理解(2)git branch和git branch -v(3)git checkout 分…...

LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
目录7 两数之和题目描述:解题思路与代码暴力解法:解法一:二分查找解法二:双指针2 斐波那契数列题目描述:解题思路与代码解法一&…...

测试1:测试相关概念
1.测试相关概念 1.1.测试概念 1.1.1.需求 符合正式文档规定的条件和权能,包括用户需求和软件需求 它们之间的的转换是:沟通 用户需求和软件需求的区别: 能否指导开发人员开发,测试人员编写测试用例 1.1.2.缺陷Bug 与正确的…...

2.19 索引和事务
一.联合查询面试问题:聚合查询与联合查询的区别聚合查询是行与行之间的数据加工聚合函数 :count,sum,avg...group by 进行分组,指定列的值,相同的记录合并到同一个组,每个组又可以分别进行聚合查询分组还可以指定条件筛选,如果分组之前指定条件 用where,如果对分组之后指定条件…...

算法导论【摊还分析】—聚合分析、核算法、势能法
算法导论【摊还分析】—聚合分析、核算法、势能法聚合分析核算法势能法假定我们对一个数据结构执行一个由 n 个操作组成的操作序列,当 i 严格为 2 的幂时,第 i 个操作的代价为 i,否则代价为 1 聚合分析 总共有n个操作,1,2,4.....…...

【LeetCode】剑指 Offer 08. 二叉树的下一个节点 p65 -- Java Version
题目链接:无题目链接,不知道为啥力扣上找不到这一题。 1. 题目介绍(08. 二叉树的下一个节点) 题目:给定一个二叉树和其中的一个节点,请找出中序遍历顺序的下一个节点并且返回。注意,树中的节点…...

Python 之 Pandas Series 数据结构
文章目录一、Series 结构二、数据结构 Series 创建1. 创建1.1 列表/数组作为数据源创建 Series1.2 字典作为数据源创建 Series1.3 通过标量创建2. 参数说明2.1 index 参数2.2 name 参数2.3 copy 参数三、Series 的索引/切片1. 下标索引2. 标签索引3. 切片四、Series 数据结构的…...

【java基础】Java常用类———包装类
包装类 wrapper 装箱与拆箱 装箱:基本类型->包装类; 拆箱: 包装类->基本类型 public class Integer01 {public static void main(String[] args) {//演示int <--> Integer 的装箱和拆箱//jdk5前是手动装箱和拆箱//手动装箱 in…...

linux shell 入门学习笔记3 shebang
shebang 计算机程序中,shebang指的是出现在文本文件的第一行前两个字符#! 在Unix系统中,程序会分析shebang后面的内容,作为解释器的指令,例如 以#!/bin/sh 开头的文件,程序在执行的时候会调用/bin/sh,也就…...

写作小课堂:简历模版【A4纸正反两面】(20230219)
文章目录 I 联系方式II 个人信息III 求职意向IV 工作经验2018年-11月-至今全城淘信息技术服务有限公司2017年07月-2018年-11月湖南微流网络科技有限公司2014年06月-2017年07月湖南高阳通联信息技术有限公司V 项目经验2018年11月-至今全城淘淘管家2017年10月-2018年11月ASO(机刷…...

一文搞懂 DevOps
前言 DevOps作为一个热门的概念,近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。 那么,DevOps是什么呢? 有人说它是一种方法,也有人说它是一种工具&#…...

深入讲解Kubernetes架构-租约
分布式系统通常需要租约(Lease);租约提供了一种机制来锁定共享资源并协调集合成员之间的活动。 在 Kubernetes 中,租约概念表示为 coordination.k8s.io API 组中的 Lease 对象, 常用于类似节点心跳和组件级领导者选举等…...

微信小程序学习第11天——Vant Weapp组件库、API Promise化、全局数据共享Mobx、分包
目录一、小程序对npm 的限制二、使用Vant Weapp组件库1、安装组件2、使用组件3、定制全局样式三、API Promise化1、下载miniprogram-api-promise2、引入3、使用四、全局数据共享五、分包1、分包概念2、使用分包3、独立分包4、分包预下载一、小程序对npm 的限制 在小程序中使用…...

Python3-基本数据类型
Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 等号&…...

RPA落地指南:什么是RPA
什么是RPA RPA在企业中起什么作用并扮演什么角色呢?想要充分了解RPA,我们需要知道RPA的相关概念、特点、功能以及能解决的问题。接下来对这些内容进行详细介绍。 1.1 RPA的3个核心概念 RPA的中文译名是“机器人流程自动化”,顾名思义&…...

跨域问题的三种解决办法
我们平时对于前后端联调的项目,以下的错误是经常常见的,我们查看浏览器报错: Access to XMLHttpRequest at http://localhost:63110/system/dictionary/all fromorigin http://localhost:8601 has been blocked by CORS policy: No Access…...

c++提高篇——string容器
一、string基本概念 string是C风格的字符串,而string本质上是一个类。 与c语言不同,string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。在根本上与c语言字符串是一致的。 在string类内部封装了很…...

[软件工程导论(第六版)]第6章 详细设计(复习笔记)
文章目录6.1 结构程序设计6.2 人机界面设计6.3 过程设计的工具6.3.1 程序流程图(程序框图)6.3.2 盒图(N-S图)6.3.3 PAD图(问题分析图)6.3.4 判定表6.3.5 判断树6.3.6 过程设计语言6.4 面向数据结构的设计方…...

RabbitMQ核心内容:实战教程(java)
文章目录一、安装二、入门1.分类2.核心概念3.工作原理4.六大模式三、模式一:"Hello World!"1.依赖2.生产者代码3.消费者代码四、模式二:Work Queues1.工作原理2.工具类代码:连接工厂3.消费者代码4.生产者代码5.分发策略不公平分发预…...

RK356x U-Boot研究所(命令篇)3.7 pci与nvme命令的用法
平台U-Boot 版本Linux SDK 版本RK356x2017.09v1.2.3文章目录 一、设备树与config配置二、pci命令的定义三、nvme命令的定义四、pci与nvme命令的用法3.1 pci总线扫描3.2 nvme设备信息3.3 nvme设备读写一、设备树与config配置 RK3568支持PCIe接口,例如ROC-RK3568-PC: 原理图如…...

微信头像昵称获取能力的变化导致了我半年没更新小程序
背景 2022年9月份,微信更改了获取头像昵称的规则,回收了原有 wx.getUserProfile 中的部分能力,为了减小对【微点记账】小程序的影响,长达半年未做任何更新,今天为了增加这个聊天机器人的功能,不得不重新查…...

【深度学习编译器系列】1. 为什么需要深度学习编译器?
本系列是自学深度学习编译器过程中的一些笔记和总结,参考文献在文末。 1. 概述 深度学习(DL)编译器的产生有两方面的因素:深度学习模型的广泛应用,以及深度学习芯片的层出不穷。 一方面,我们现在有非常多…...

数据结构与算法总结整理(超级全的哦!)
数据结构与算法基础大O表示法时间复杂度大O表示法时间复杂度排序:最坏时间复杂度时间复杂度的几条基本计算规则内存工作原理什么是内存内存主要分为三种存储器随机存储器(RAM)只读存储器(ROM)高速缓存(Cach…...

DPDK — MALLOC 堆内存管理组件
目录 文章目录 目录MALLOC 堆内存管理组件rte_malloc() 接口malloc_heap 结构体malloc_elem 结构体内存初始化流程内存申请流程内存释放流程MALLOC 堆内存管理组件 MALLOC(堆内存管理组件)基于 hugetlbfs 内核文件系统来实现,能够从 HugePage 中分配一块连续的物理大页内存…...

分享113个HTML艺术时尚模板,总有一款适合您
分享113个HTML艺术时尚模板,总有一款适合您 113个HTML艺术时尚模板下载链接:https://pan.baidu.com/s/1ReoPNIRjkYov-SjsPo0vhg?pwdjk4a 提取码:jk4a Python采集代码下载链接:采集代码.zip - 蓝奏云 女性化妆用品网页模板 粉…...

2023年美赛C题Wordle预测问题一建模及Python代码详细讲解
相关链接 (1)2023年美赛C题Wordle预测问题一建模及Python代码详细讲解 (2)2023年美赛C题Wordle预测问题二建模及Python代码详细讲解 (3)2023年美赛C题Wordle预测问题三、四建模及Python代码详细讲解 &…...

小米12s ultra,索尼xperia1 iv,数码相机 拍照对比
首先说明所有的测试结果和拍摄数据我放到百度网盘了(地址在结尾) 为什么做这个测试 我一直想知道现在的手机和相机差距有多大,到底差在哪儿? 先说结论: 1.1英寸的手机cmos(2022年) 6年前(2016)的入门款相机(m43画幅) 2.手机 不能换镜头,只能在特定的拍摄距离才能发挥出全…...

C++笔记 模板的进阶知识
目录 1. 非类型模板参数 2.模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.2.1 全特化 2.2.2 偏特化 3.模板的分离编译 3.1 什么是分离编译? 3.2 模板的分离编译 4.模板的总结 模板的初阶内容:(594条消息) C模板的原理和使用_全貌的博客-CSD…...

基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像
基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像Linux 环境说明Debian 简介Debian 发行版本关于 Debian 11Linux 常用基础工具Dockerfile 中 RUN 指令RUN 语法格式RUN 语义说明编写 Dockerfile 构建 Runtime 基础镜像ASP.NET Core Runtime 基础镜像Dockerfile 编写Windo…...

【无人机路径规划】基于IRM和RRTstar进行无人机路径规划(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...