Git代码管理
目录:
- git环境配置
- git工作流程
- git常用命令
- gitlab实战
- gitlog分析与检索
- 分支管理策略
- git合并与冲突
1.git环境配置
Git 简介:
- Git 是目前世界上最先进的分布式版本控制系统。
- Git 优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
Git 环境验证:
- Windows:
- cmd 中输入命令
git --version。
- cmd 中输入命令
- MacOS:
- 终端中输入命令
git --version。
- 终端中输入命令
2.git工作流程
Git 基本概念:
- 文件状态
- 未跟踪(Untracked)
- 未修改(Unmodified)
- 已修改(Modified)
- 暂存区(Staged)
- 三个工作区域
- 工作区(Working Directory)
- 暂存区(Staging Area)
- 仓库区(Repository)
- 工作树(Worktree)

Git 工作流程:

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 帐号:
- 申请账号。
- 申请权限。
配置公钥:
- 找到 id_rsa.pub,复制内容。
- GitLab -> 我的头像 -> Prefereces。
- SSH keys。
- 粘贴公钥,点击 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,保存代码。
- 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码。
- 冲突解决流程:
- 在本地当前分支上,修改冲突内容。
- 执行
git add .添加到暂存区。 - 执行
git commit -m '提交说明'提交到本地仓库,完成合并。 - 执行
git push提交到远程仓库。
相关文章:
Git代码管理
目录: git环境配置 git工作流程git常用命令gitlab实战gitlog分析与检索分支管理策略git合并与冲突 1.git环境配置 Git 简介: Git 是目前世界上最先进的分布式版本控制系统。Git 优点: 适合分布式开发,强调个体…...
使用vscode进行远程开发服务器配置
1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后,vscode左侧出现电脑图标,即为远程服务,按图依次点击,进行服务器配置…...
北斗gps卫星授时服务器(NTP)应用于防火墙场景
北斗gps卫星授时服务器(NTP)应用于防火墙场景 北斗gps卫星授时服务器(NTP)应用于防火墙场景 作为网络建设中不可或缺的两方面,在保证网络安全稳定以及时间同步精确性方面,防火墙和NTP服务器都极为重要。而防…...
Quartz中Misfire机制源码级解析
文章目录 前文案例展示Misfire机制1. 启动过程补偿2. 定时任务补偿3. 查询待触发列表时间区间补偿 前文 Misfire是啥意义的?使用翻译软件结果是"失火"。一个定时软件,还来失火?其实在Java里面,fire的含义更应该是触发&…...
每日一题——重建二叉树
重建二叉树 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…...
Python - json与字典dict
Python中的JSON和字典都是数据序列化的格式,它们都可以将数据转换为字符串以便于存储或传输。虽然它们有一些相似之处,但也有很多不同之处。 字典 字典是Python中的一种数据类型,它是一个键值对的集合。每个键对应一个值,可以通…...
性能测试必备监控技能linux篇
前言 如果性能测试的目标服务器是linux系统,在如何使用linux自带的命令来实现性能测试过程的监控分析呢? 对于日常性能测试来讲,在linux下或是类Unix系统,我们必须掌握以下常用的指标查看命令。 ps pstree top free vmstat …...
【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)
系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训练…...
C++ 面向对象三大特征
文章目录 一、封装二、继承三、多态 一、封装 目的:隐藏实现细节;模块化 特性: 1) 访问权限: public 所有 protected 子类 private 自己(友元类也可以访问) 2)属性 3)方…...
【Github】自动监测 SSL 证书过期的轻量级监控方案 - Domain Admin
在现代的企业网络中,网站安全和可靠性是至关重要的。一个不注意的SSL证书过期可能导致网站出现问题,给公司业务带来严重的影响。针对这个问题,手动检测每个域名和机器的证书状态需要花费大量的时间和精力。为了解决这个问题,我想向…...
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(即我们常说的Windows系统)是Microsoft公司的两种操作系统产品,它们都基于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…...
模型法在初中物理中的实例与应用
摘要:模型法是初中物理解题的重要方法,它的优点有方便快捷,易于理解等。文章通过列举模型法在初中物理解题时应用的例子,与模型法在学习与生活中的实际应用,说明了模型法可用性高,易于理解,能让…...
el-table 设置行背景颜色 鼠标移入高亮问题处理
一、 设置行背景颜色 1. 需求描述 后端返回表格数据,有特定行数需要用颜色标识。类似于以下需求: 2. 解决方式 方式区别:row-class-name“tableRowClassName”已返回类名的形式设置样式,代码整洁,但是会鼠标高亮,…...
嵌入式面试常见题目收藏(超总结)
这篇文章来自很多博客主和其他网站的作者,如有侵权,联系必删 文章出处标注: https://blog.csdn.net/qq_44330858/article/details/128947083 ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** 1.…...
error in file(out, “wt“): cannot open the connection
这个错误在提示我们: 文件无法打开链接,可能是以下原因之一: 文件不存在或者路径错误;文件正在被其他程序占用;没有足够的权限来访问该文件;硬盘内存不足; 可以尝试的方法: 可以检…...
Redis (一)消息订阅和发送测试
〇、redis 配置 1、概况 本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。 2、目录概况 一、配置文件 位于 /config/app.yml 中,目的用于 Redis 初始化: redis:addr: "39.104.**.28:6379"password: "p…...
区间预测 | MATLAB实现QRGRU门控循环单元分位数回归多输入单输出区间预测
区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归分位数回归多输入单输出区间…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
