当前位置: 首页 > news >正文

Git代码管理

目录:

  1. git环境配置        
  2. git工作流程
  3. git常用命令
  4. gitlab实战
  5. gitlog分析与检索
  6. 分支管理策略
  7. git合并与冲突

1.git环境配置        

Git 简介:

  • Git 是目前世界上最先进的分布式版本控制系统。
  • Git 优点:
    • 适合分布式开发,强调个体。
    • 公共服务器压力和数据量都不会太大。
    • 速度快、灵活。
    • 任意两个开发者之间可以很容易的解决冲突。
    • 离线工作。

Git 环境验证:

  • Windows:
    • cmd 中输入命令 git --version
  • MacOS:
    • 终端中输入命令 git --version

2.git工作流程

Git 基本概念:

  • 文件状态
    • 未跟踪(Untracked)
    • 未修改(Unmodified)
    • 已修改(Modified)
    • 暂存区(Staged)
  • 三个工作区域
    • 工作区(Working Directory)
    • 暂存区(Staging Area)
    • 仓库区(Repository)
  • 工作树(Worktree)

PlantUML diagram

Git 工作流程:

PlantUML diagram

3.git常用命令

基于 Git 的远程仓库:

  • GitHub        https://github.com/    世界上最主流的远程开源仓库。
  • Gitee           https://gitee.com/      国内目前比较主流的开源仓库,也可以私有化部署。(推荐)
  • GitLab         https://gitlab.com/      私有化部署,企业使用较多。

Git 同步命令:

克隆远程仓库:

  • git clone <url>

       远程连接方式                       特点

  • HTTPS                                 连接使用给定 URL 即可 clone,在 push 时验证用户名和密码。
  • SSH 连接                             需要提前添加 SSH Key,在 push 时不需要输入用户名,配置                                         SSH 时设置了密码才需要输入密码。 

HTTPS 连接:

  • 配置全局帐号:
    • 配置用户名:git config --global user.name "your name"
    • 配置邮箱:git config --global user.email "your_email@youremail.com"
  • 验证配置结果:git config --global --list

SSH 连接:

拉取远程仓库:

  • 拉取远程仓库到本地:
    • git pull

初始化仓库:

  • 在已存在的目录中初始化仓库:
    • git init
  • 关联远程仓库:
    • git remote add origin <url> 

Git 修改命令:

跟踪新文件:

  • 添加文件或目录到暂存区:
    • git add <file>/<directory>

# 跟踪某个文件

git add new_file.txt

# 跟踪当前目录下所有文件

git add . 

提交更新:

  • 提交到本地仓库:
    • git commit -m "comments"

推送到远程仓库:

  • 推送本地仓库到远程仓库:
    • git push

Git 常用调试命令:

检查当前文件状态:

  • 查看文件状态:
    • git status

查看已暂存和未暂存的修改:

  • 比较当前文件和暂存区域快照之间的差异:
    • git diff
  • 查看已暂存的将要添加到下次提交里的内容:
    • git diff --staged

撤销操作:

  • 撤销对文件的修改:
    • git checkout <file>
  • 取消暂存:
    • git reset HEAD <file>

cat readme.txt

1234

update1

update2

update3

git checkout readme.txt

cat readme.txt

1234

update1

update2

git reset HEAD file.txt

git status

On branch master

Untracked files:

         (use "git add <file>..." to include in what will be committed)

         file.txt

nothing added to commit but untracked files present (use "git add" to track) 

移除文件:

  • 删除文件:
    • git rm -f <file>
  • 移出暂存区:
    • git rm --cached <file> 

忽略文件:

  • .gitignore 文件。
  • 有些文件无需纳入 Git 的管理。
  • 比如日志文件,或者编译过程中创建的临时文件。

4.gitlab实战

GitLab 帐号:

  • 申请账号。
  • 申请权限。

配置公钥:

  1. 找到 id_rsa.pub,复制内容。
  2. GitLab -> 我的头像 -> Prefereces。
  3. SSH keys。
  4. 粘贴公钥,点击 add key。

 

5.gitlog分析与检索

Git Log 分析:

  • 查看项目历史信息:
    • git log

Git Log 检索:

  • 筛选时间:
    • git log --since='2023-02-02 00:00:00'
  • 筛选作者:
    • git log --author='feier'
  • 筛选描述:
    • git log --grep='update'

6.分支管理策略

分支管理:

  • 概念:
    • 每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。
  • 价值:
    • 多人协作。
    • 环境管理。

创建分支:

  • 新建分支,但仍然停留在当前分支:
    • git branch 分支名
  • 新建分支并直接切换至该分支:
    • git checkout -b 分支名

查看分支:

  • 列出所有本地分支:
    • git branch
  • 列出所有远程分支:
    • git branch -r
  • 列出所有本地与远程分支:
    • git branch -a

切换分支:

  • 切换到指定分支:
    • git checkout 分支名

删除分支:

  • 删除指定分支:
    • git branch -d 分支名

7.git合并与冲突

分支合并应用场景:

  • 合入主分支。
  • 主分支合并其他分支:
    • 通常使用 Merge Request 的方式。

合并分支:

  • 合并指定分支到当前分支:
    • git merge 其他分支 本分支
  • 变基:重新设置基准:
    • git rebase 其他分支

什么是冲突?

  • 冲突:在并行工作的模式下,工作最终会发生重叠。当多个成员以不同的方式更改同一行内容时,在这种情况下,Git 无法判断哪个版本是正确的,这时就会产生冲突。
  • 冲突场景:
    • 多个分支代码合并到一个分支时。
    • 多个分支向同一个远端分支推送代码时。

解决冲突:

  • 解决冲突方式:
    • IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码。
    • 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
  • 冲突解决流程:
    1. 在本地当前分支上,修改冲突内容。
    2. 执行 git add . 添加到暂存区。
    3. 执行 git commit -m '提交说明' 提交到本地仓库,完成合并。
    4. 执行 git push 提交到远程仓库。

相关文章:

Git代码管理

目录&#xff1a; git环境配置 git工作流程git常用命令gitlab实战gitlog分析与检索分支管理策略git合并与冲突 1.git环境配置 Git 简介&#xff1a; Git 是目前世界上最先进的分布式版本控制系统。Git 优点&#xff1a; 适合分布式开发&#xff0c;强调个体…...

使用vscode进行远程开发服务器配置

1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后&#xff0c;vscode左侧出现电脑图标&#xff0c;即为远程服务&#xff0c;按图依次点击&#xff0c;进行服务器配置…...

北斗gps卫星授时服务器(NTP)应用于防火墙场景

北斗gps卫星授时服务器&#xff08;NTP&#xff09;应用于防火墙场景 北斗gps卫星授时服务器&#xff08;NTP&#xff09;应用于防火墙场景 作为网络建设中不可或缺的两方面&#xff0c;在保证网络安全稳定以及时间同步精确性方面&#xff0c;防火墙和NTP服务器都极为重要。而防…...

Quartz中Misfire机制源码级解析

文章目录 前文案例展示Misfire机制1. 启动过程补偿2. 定时任务补偿3. 查询待触发列表时间区间补偿 前文 Misfire是啥意义的&#xff1f;使用翻译软件结果是"失火"。一个定时软件&#xff0c;还来失火&#xff1f;其实在Java里面&#xff0c;fire的含义更应该是触发&…...

每日一题——重建二叉树

重建二叉树 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果&#xff0c;请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…...

Python - json与字典dict

Python中的JSON和字典都是数据序列化的格式&#xff0c;它们都可以将数据转换为字符串以便于存储或传输。虽然它们有一些相似之处&#xff0c;但也有很多不同之处。 字典 字典是Python中的一种数据类型&#xff0c;它是一个键值对的集合。每个键对应一个值&#xff0c;可以通…...

性能测试必备监控技能linux篇

前言 如果性能测试的目标服务器是linux系统&#xff0c;在如何使用linux自带的命令来实现性能测试过程的监控分析呢&#xff1f; 对于日常性能测试来讲&#xff0c;在linux下或是类Unix系统&#xff0c;我们必须掌握以下常用的指标查看命令。 ps pstree top free vmstat …...

【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何训练…...

C++ 面向对象三大特征

文章目录 一、封装二、继承三、多态 一、封装 目的&#xff1a;隐藏实现细节&#xff1b;模块化 特性&#xff1a; 1&#xff09; 访问权限&#xff1a; public 所有 protected 子类 private 自己&#xff08;友元类也可以访问&#xff09; 2&#xff09;属性 3&#xff09;方…...

【Github】自动监测 SSL 证书过期的轻量级监控方案 - Domain Admin

在现代的企业网络中&#xff0c;网站安全和可靠性是至关重要的。一个不注意的SSL证书过期可能导致网站出现问题&#xff0c;给公司业务带来严重的影响。针对这个问题&#xff0c;手动检测每个域名和机器的证书状态需要花费大量的时间和精力。为了解决这个问题&#xff0c;我想向…...

Echarts常见图表展示

一、折线图 1.1 堆叠折线图 const option {title: {text: 折线图,},tooltip: {trigger: axis},legend: {data: [张三, 李四, 王五],bottom: 10,},grid: {left: 3%,right: 4%,bottom: 10%,containLabel: true},xAxis: {type: category,boundaryGap: false,data: [Mon, Tue, We…...

PySpark机器学习实战案例

目录 PySpark机器学习库 分布式机器学习原理 PySpark架构设计 PySpark项目实战...

微软操作系统中,windows server 系列和windows 的区别

Windows Server和Windows Desktop&#xff08;即我们常说的Windows系统&#xff09;是Microsoft公司的两种操作系统产品&#xff0c;它们都基于Windows NT内核。两者在设计目标、功能和价格等方面存在显著的区别。 设计目标与功能 Windows Desktop系统主要针对个人用户和企业的…...

本地部署 Stable Diffusion XL 1.0 Gradio Demo WebUI

StableDiffusion XL 1.0 Gradio Demo WebUI 0. 先展示几张 StableDiffusion XL 生成的图片1. 什么是 Stable Diffusion XL Gradio Demo WebUI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion XL Gradio Demo WebUI6. 启动 Stable Diffusion XL Gradi…...

模型法在初中物理中的实例与应用

摘要&#xff1a;模型法是初中物理解题的重要方法&#xff0c;它的优点有方便快捷&#xff0c;易于理解等。文章通过列举模型法在初中物理解题时应用的例子&#xff0c;与模型法在学习与生活中的实际应用&#xff0c;说明了模型法可用性高&#xff0c;易于理解&#xff0c;能让…...

el-table 设置行背景颜色 鼠标移入高亮问题处理

一、 设置行背景颜色 1. 需求描述 后端返回表格数据&#xff0c;有特定行数需要用颜色标识。类似于以下需求&#xff1a; 2. 解决方式 方式区别:row-class-name“tableRowClassName”已返回类名的形式设置样式&#xff0c;代码整洁&#xff0c;但是会鼠标高亮&#xff0c…...

嵌入式面试常见题目收藏(超总结)

​ 这篇文章来自很多博客主和其他网站的作者&#xff0c;如有侵权&#xff0c;联系必删 文章出处标注&#xff1a; https://blog.csdn.net/qq_44330858/article/details/128947083 ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** 1.…...

error in file(out, “wt“): cannot open the connection

这个错误在提示我们&#xff1a; 文件无法打开链接&#xff0c;可能是以下原因之一&#xff1a; 文件不存在或者路径错误&#xff1b;文件正在被其他程序占用&#xff1b;没有足够的权限来访问该文件&#xff1b;硬盘内存不足&#xff1b; 可以尝试的方法&#xff1a; 可以检…...

Redis (一)消息订阅和发送测试

〇、redis 配置 1、概况 本文基于 Ubuntu20.04 云服务器配置Redis&#xff0c;且在本地进行 Redis 测试。 2、目录概况 一、配置文件 位于 /config/app.yml 中&#xff0c;目的用于 Redis 初始化&#xff1a; redis:addr: "39.104.**.28:6379"password: "p…...

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归分位数回归多输入单输出区间…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...