一种子网站做的很好的视频广告/seo关键词排名报价
git学习
- 1. 概念
- git和svn的区别和优势
- 1.1 区别
- 1.2 git优势
- 2. git的三个状态和三个阶段
- 2.1 三个状态:
- 2.2 三个阶段:
- 3. 常用的git命令
- 3.1 下面是最常用的命令
- 3.2 git命令操作流程图如下:
- 4. 分支内容学习
- 4.1 项目远程仓库
- 4.2 项目本地仓库
- 4.3 生产环境从远程master分支拉取打包,暂不设置“integration manager”角色,每位开发人员均可以向master分支合并。
- 5. 具体开发步骤
- 6. 如何解决冲突
- 7. 减少冲突的方法
- 8. 关于对冲突和合并的理解
- 9. 补充其他可能用的命令
- 9.1 对象库操作相关命令
- 9.2 数据传输相关命令
- 9.3 分支相关命令
- 9.3.1 git branch 分支管理
- 9.3.2 git checkout 切换或新建分支
- 9.3.3 git merge 分支合并
1. 概念
Git是一个免费和开源的分布式版本控制系统。相较于SVN具有便于本地分支等特性。
git和svn的区别和优势
1.1 区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
1.2 git优势
- 容易分支;git鼓励创建一个或多个本地分支进行开发且代价极小。与此对应SVN的分支基本上等于将整个项目进行拷贝,成本大。
- 速度快;大部分操作都在本地进行,如查看提交记录。但是在拉取的时候会慢,SVN拉取的是最新版本,而GIT会拉取整套版本;
- 分布式;与SVN集中式管理相比,GIT每个用户都是主服务的一个完整备份;
- 有暂存区;可用于提交部分文件;
- 数据安全;每个文件与每次提交都会被验证
2. git的三个状态和三个阶段
- 三个状态:已修改,已暂存,已提交
- 三个阶段:工作区,暂存区,仓库
三个状态分别对应三个阶段
2.1 三个状态:
已修改(modified):表示修改了文件,但还没保存到仓库中。
已暂存(staged):已暂存,表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交(committed):表示数据已经安全地保存在
本地仓库
中。
2.2 三个阶段:
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
工作区(Working Directory):对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区(Staging Area):保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。
仓库(Repository): Git用来保存项目的元数据和对象数据库的地方,分为本地仓库与远程仓库。
3. 常用的git命令
3.1 下面是最常用的命令
序号 | 命令 | 名称 | 描述 |
---|---|---|---|
1 | git clone | 克隆 | 复制远程仓库包含历史版本在内的几乎所有数据至本地仓库。 |
2 ❤ | git pull | 拉取 | 将远程仓库的最新内容数据下载到你的本地仓库并尝试合并。 |
3 ❤ | git fetch | 获取 | 将远程仓库的最新内容数据下载到你的本地仓库但不会自动合并。 |
4 | git checkout | 检出 | 多用途命令,从Git仓库提取文件、撤销修改、切换分支等。 |
5 | git diff | 比较未暂存文件与最后一次提交的文件或者已暂存文件差异。 | |
6 ❤ | git add | 跟踪 | 跟踪新文件并使之处于暂存状态或合并时将冲突文件标识为已解决等。 |
7 ❤ | git commit | 提交 | 将未暂存的或已暂存的文件保存至本地仓库。 |
8 ❤ | git push | 推送 | 将文件推送到远程仓库。 |
9 | git log | 查看提交历史。 | |
10❤ | git branch | 分支 | 创建或查看分支。 |
11❤ | git merge | 合并 | 合并分支。 |
3.2 git命令操作流程图如下:
4. 分支内容学习
4.1 项目远程仓库
共分为两个分支。
-
master分支:主干分支。用于发布生产环境。
-
dev分支:开发分支。(一般我们都是从dev拉取版本)接收本地dev分支的合并。测试无误后才合并至master分支,后续根据情况决定是否建立测试分支。
4.2 项目本地仓库
-
包括一个dev分支与多个功能及bug修复分支。
-
dev分支用来合并其它功能分支的提交,同时用来推送远程dev分支。
-
功能分支及bug修复分支是临时分支,用于开发具体功能和修复bug,开发完成合并至本地dev分支后可删除;
注意线上的bug修改分支需要从远程master分支进行拉取。
4.3 生产环境从远程master分支拉取打包,暂不设置“integration manager”角色,每位开发人员均可以向master分支合并。
5. 具体开发步骤
-
拉取远程最新提交的dev分支至本地dev分支,保证本地dev分支代码为最新版本。
-
从本地dev分支拉取新的功能分支dev-temp-xxx并在其上进行开发
就是新建一个dev-temp-xxx分支
-
本地功能开发分支在开发完成并且自测无误后进行代码提交commit(commit是提交到本地仓库)。
ps:只是提交到本地仓库,并不是合并merge;
每个temp分支和dev都有指针指向自己的版本,在没有合并之前是不会产生新的版本的;
-
切换到本地dev分支从远程dev分支拉取最新提交。
保证本地dev最新;因为在我们第一次拉取远程dev进行功能开发期间,可能其他人已经push了一个版本修改了相同的功能,这个时候我们就得重新拉取远程dev到本地dev,以便于解决 / 避免冲突
-
将功能分支dev-temp-xxx合并(merge)到本地dev分支,此过程可能产生冲突,解决冲突。
再本地dev重新拉取以后,我们在把temp分支合并到本地
-
推送本地dev分支到远程dev分支。
-
将新建的功能分支dev-temp-xxx删除。
个人 具体理解如下:
6. 如何解决冲突
-
冲突发生时首先备份自己开发的内容。
-
然后用他人的版本解决冲突。
舍弃自己的版本,直接用他人的版本作为merge的父类;
-
将自己新开发的内容回添到已解决冲突的文件中。
不是简单的复制粘贴上去
-
提交。
7. 减少冲突的方法
-
任务分解时功能独立;
-
开发前拉取代码;(尽量早拉取)
-
开发测试完成后及时提交代码。(尽快早提交)
8. 关于对冲突和合并的理解
- 冲突的解决,分支的合并都是在本地的;
- 本地的dev分支版本,都是高于拉取时远程dev的版本,所以在本地合并(merge)之前得重新拉去最新的远程dev分支
9. 补充其他可能用的命令
命令 | 简要说明 |
---|---|
git add | 添加至暂存区 |
git add–interactive | 交互式添加 |
git apply | 应用补丁 |
git am | 应用邮件格式补丁 |
git annotate | 同义词,等同于 git blame |
git archive | 文件归档打包 |
git bisect | 二分查找 |
git blame | 文件逐行追溯 |
git branch 分支相关 | 分支管理 |
git cat-file | 版本库对象研究工具 |
git checkout 分支相关 | 检出到工作区、切换或创建分支 |
git cherry-pick | 提交拣选 |
git citool | 图形化提交,相当于 git gui 命令 |
git clean | 清除工作区未跟踪文件 |
git clone | 克隆版本库 |
git commit | 提交 |
git config | 查询和修改配置 |
git describe | 通过里程碑直观地显示提交ID |
git diff | 差异比较 |
git difftool | 调用图形化差异比较工具 |
git fetch | 获取远程版本库的提交 |
git format-patch | 创建邮件格式的补丁文件。参见 git am 命令 |
git grep | 文件内容搜索定位工具 |
git gui | 基于Tcl/Tk的图形化工具,侧重提交等操作 |
git help | 帮助 |
git init | 版本库初始化 |
git init-db* | 同义词,等同于 git init |
git log | 显示提交日志 |
git merge 分支相关 | 分支合并 |
git mergetool | 图形化冲突解决 |
git mv | 重命名 |
git pull | 拉回远程版本库的提交 |
git push | 推送至远程版本库 |
git rebase | 分支变基 |
git rebase–interactive | 交互式分支变基 |
git reflog | 分支等引用变更记录管理 |
git remote | 远程版本库管理 |
git repo-config* | 同义词,等同于 git config |
git reset | 重置改变分支“游标”指向 |
git rev-parse | 将各种引用表示法转换为哈希值等 |
git revert | 反转提交 |
git rm | 删除文件 |
git show | 显示各种类型的对象 |
git stage* | 同义词,等同于 git add |
git stash | 保存和恢复进度 |
git status | 显示工作区文件状态 |
git tag | 里程碑管理 |
9.1 对象库操作相关命令
命令 | 简要说明 |
---|---|
git commit-tree | 从树对象创建提交 |
git hash-object | 从标准输入或文件计算哈希值或创建对象 |
git ls-files | 显示工作区和暂存区文件 |
git ls-tree | 显示树对象包含的文件 |
git mktag | 读取标准输入创建一个里程碑对象 |
git mktree | 读取标准输入创建一个树对象 |
git read-tree | 读取树对象到暂存区 |
git update-index | 工作区内容注册到暂存区及暂存区管理 |
git unpack-file | 创建临时文件包含指定 blob 的内容 |
git write-tree | 从暂存区创建一个树对象 |
9.2 数据传输相关命令
命令 | 简要说明 |
---|---|
git fetch-pack | 执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象 |
git receive-pack | 执行 git push 命令时在远程执行的命令,用于接受推送的数据 |
git send-pack | 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据 |
git upload-archive | 执行 git archive –remote 命令基于远程版本库创建归档时,远程版本库执行此命令传送归档 |
git upload-pack | 执行 git fetch 或 git pull 命令时在远程执行此命令,将对象打包、上传 |
9.3 分支相关命令
9.3.1 git branch 分支管理
git branch 查看本地所有分支
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
9.3.2 git checkout 切换或新建分支
git checkout --track origin/dev 切换到远程dev分支
git checkout dev 切换到本地dev分支
git checkout -b dev 建立一个新的本地分支dev
9.3.3 git merge 分支合并
git merge origin/dev 将分支dev与当前分支进行合并
相关文章:

git的简单介绍和使用
git学习 1. 概念git和svn的区别和优势1.1 区别1.2 git优势 2. git的三个状态和三个阶段2.1 三个状态:2.2 三个阶段: 3. 常用的git命令3.1 下面是最常用的命令3.2 git命令操作流程图如下: 4. 分支内容学习4.1 项目远程仓库4.2 项目本地仓库4.3…...

UNet Model
论文地址 第一阶段 conv2d(33) first conv:5725721 → 57057064 second conv:57057064 → 56856864 代码 # first 33 convolutional layer self.first nn.Conv2d(in_channels, out_channels, kernel_size3, padding1) self.act1 nn.ReLU() # Seco…...

vue+iviewUi+oss直传阿里云上传文件
前端实现文件上传到oss(阿里云)适用于vue、react、uni-app,获取视频第一帧图片 用户获取oss配置信息将文件上传到阿里云,保证了安全性和减轻服务器负担。一般文件资源很多直接上传到服务器会加重服务器负担此时可以选择上传到oss&…...

算法leetcode|68. 文本左右对齐(rust重拳出击)
文章目录 68. 文本左右对齐:样例 1:样例 2:样例 3:提示: 分析:题解:rust:go:c:python:java: 68. 文本左右对齐: 给定一个…...

基于MATLAB实现小波算法仿真(附上多个完整源码+数据集)
小波变换是一种常用的信号处理技术,广泛应用于图像处理、音频处理、压缩等领域。本文将介绍MATLAB中小波变换的基本原理和实现方法,并给出一个示例来说明如何使用MATLAB进行小波变换和逆变换。 文章目录 1. 引言2. 小波变换的基本原理3. MATLAB中的小波变…...

【深度学习注意力机制系列】—— CBAM注意力机制(附pytorch实现)
CBAM(Convolutional Block Attention Module)是一种用于增强卷积神经网络(CNN)性能的注意力机制模块。它由Sanghyun Woo等人在2018年的论文[1807.06521] CBAM: Convolutional Block Attention Module (arxiv.org)中提出。CBAM的主…...

【资料分享】全志科技T507-H工业核心板规格书
1 核心板简介 创龙科技SOM-TLT507是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53全国产工业核心板,主频高达1.416GHz。核心板CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率100%。 核心板通过邮票孔连接方式引出MIPI C…...

Profibus-DP转modbus RTU网关modbus rtu和tcp的区别
捷米JM-DPM-RTU网关在Profibus总线侧实现主站功能,在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备(如:EH流量计、倍福编码器等)接入到Modbus网络中;通过增加DP/PA耦合器,也可将Profibus PA从站接入…...

AlmaLinux 9 安装 Edge 和 Chrome
AlmaLinux 9 安装 Edge 和 Chrome 1. 安装 Edge2. 安装 Chrome 1. 安装 Edge 更新源, sudo dnf update -y # sudo dnf install dnf-utils -y添加 Edge 源, sudo dnf config-manager --add-repo https://packages.microsoft.com/yumrepos/edge再次更新…...

NGINX——负载均衡
负载均衡————>通过反向代理来实现 nginx反向代理的七层代理和四层代理 七层代理: 七层代理时最常用的反向代理方式,其只能配置在nginx的配置文件的http模块中,而且方法名称必须要定义成“upstream”模块,注意不能写在se…...

C#实现端口扫描和执行cmd命令、调用摄像头
C#端口扫描 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Threading;namespace PortScanner {class Program{static void Main(string[] args){// 设置扫描参数string host "localho…...

【图像恢复】基于交替乘子方法(ADMM)图像恢复算法研究[固定点收敛和应用](Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Qt 使用QLabel的派生类实现QLabel的双击响应
1 介绍 在QLabel中没有双击等事件响应,需要构建其派生类,自定义信号(signals)、重载事件函数(event),最后在Qwidget中使用connect链接即可,进而实现响应功能。 对于其余没有需求事件响应的QObject同样适用。 此外,该功…...

关于@JSONField的使用
1.此注解来自jar包com.alibaba.fastjson 今天分享一个有意思的事情。这个注解作用与类的属性上,如下: ApiModelProperty(value"开始时间,格式:yyyy-MM-dd",required true) JSONField(name"start_date",ordinal 1) private String…...

Centos7单机部署ElasticSearch
Centos7单机部署ElasticSearch 引言 Elasticsearch是一种广泛使用的开源搜索引擎,专门为分布式环境设计,但也可以在单机上运行。它使存储、搜索和分析大量数据变得更加容易和高效。此教程将引导你通过在Centos7上单机部署Elasticsearch,涵盖…...

js玩儿爬虫
前言 提到爬虫可能大多都会想到python,其实爬虫的实现并不限制任何语言。 下面我们就使用js来实现,后端为express,前端为vue3。 实现功能 话不多说,先看结果: 这是项目链接:https://gitee.com/xi1213/w…...

新利好带动 POSE 持续上扬,月内几近翻倍
PoseiSwap 是 Nautilus Chain 上的首个 DEX,得益于 Nautilus Chain 的模块化 Layer3 构架,PoseiSwap 正在基于 zk-Rollup 方案构建全新的应用层,并基于此构建隐私、合规等全新的特性,为未来其布局 RWA 领域推动 Web2、Web3 世界的…...

Windows terminal 添加 git bash 解决git中文乱码显示问题
Windows terminal 添加 git bash 解决git中文乱码显示问题 在 windows terminal 中配置git 说明: 点击箭头选择设置 说明: 点击"添加新配置文件"配置名称命令行,可执行文件的具体语句 C:\Program Files\Git\bin\bash.exe启动目录…...

C语言实现选择排序
什么是选择排序? 选择排序是一种简单直观的排序算法,它的核心思想是每次从未排序的元素中选择最小(或最大)的元素,然后将其放到已排序序列的末尾。通过重复这个过程,直到所有元素都排好序为止。 选择排序…...

unable to write symref for HEAD: Permission denied
今天从gitee上面克隆项目到本地时报错如下 warning: unable to unlink ‘D:/IDEAcode/ruiji1.0/.git/HEAD.lock’: Invalid argument error: unable to write symref for HEAD: Permission denied 解决方法:将要存放项目的文件夹权限修改为完全控制 原先权限&…...

长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的实践技术应用
植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于…...

【行为型设计模式】C#设计模式之策略模式
题目:假设你正在开发一个手机应用程序,该应用程序包含一个计算器功能。用户可以根据自己的需求选择不同的计算策略进行计算,例如加法、减法、乘法或除法。请使用策略模式设计该计算器功能,使得用户可以根据自己的选择进行相应的计…...

Linux Shell 编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天…...

Webstorm + Egg.js 进行断点调试
Webstorm Egg.js 进行断点调试 1、在工具栏找到编辑配置,创建已运行Node.js 应用程序的调试配置 2、debug调试配置 3、调试 4、查看断点是否起效...

Oracle-创建PDB
Oracle-创建PDB 创建PDB的方式 从PDB$SEED新建PDB克隆已存在的PDB 本地PDB克隆到同一个CDB中将远程PDB克隆到CDB中将非CDB插入或克隆到CDB中通过插拔的方式创建PDB sql 命令语法 条件 CDB必须open并且read write模式连接CDB$ROOT 用户并且具有CREATEPLUGGABLEDATABASE系统权…...

【TypeScript】交叉类型联合类型(四)
【TypeScript】交叉类型&联合类型(四) 【TypeScript】交叉类型&联合类型(四)一、简介二、交叉类型2.1 交叉类型使用的注意点2.2 基本数据类型交叉2.3 对象类型交叉 三、联合类型四、类型缩减 一、简介 TypeScript 中的交…...

数组和字符串-字符串
最长公共前缀 题意: 给多个字符串,找最长前缀 解: 暴力匹配,先按字典序排序字符串,这样长度短的优先进行匹配,所得字符串就可能偏小 适合a aa aaa aaaa这样的数据,不过对于aa aab aabc aab…...

MySQL-索引基础
文章概要 本篇文章通过几个问题来了解MySQL中索引相关的概念。平时在学习MySQL时或多或少都听说过索引的概念,但是索引到底是个什么东西,可能还不是非常的清楚。 正文 1. 什么是索引? 索引,在MySQL中也称为键(key),…...

CentOS中自动加载802.1q模块
CentOS中自动加载802.1q模块 要想在CentOS中自动加载内核模块,需要在/etc/sysconfig/modules/目录中增加一个脚本,在此脚本中加载所需的模块。 下面是我所用的一个名为8021q.modules的脚本,用来在我的CentOS 5.3中自动加载802.1Q模块&#…...