git branch 分支

news2025/1/11 18:04:17

分支的定义

一个分支是git一个可移动的指针,指向某次提交。每次提交后,当前分支指针就往前挪一个,挪到最新的提交上。

HEAD 指向当前活动的分支

master 默认分支名 (git init命令 默认创建它)

常见分支指令

创建一个分支

git branch testing #创建一个新的分支,指向原来同样的提交

切换分支

git checkout testing  #切换分支,底层是把HEAD指向新的分支。切换后 提交(commit) 会提交到新的分支上
git checkout -b <新分支名> #创建并切换分支
git switch testing-branch #2.23后,切换分支
git switch - #回到前一个分支

#切换分支,工作目录会恢复到该分支的最后一次提交(快照内容)上。
# 作用:便于不同方向的开发


#切换分支前,保持干净的状态(要保证 工作目录 和 暂存区,没有 未被提交的修改)   
#    也可用 暂存(stashing)和 清理(clean)

合并分支

git checkout master #切换分支
git merge iss53 #将iss53上的修改 合并到当前分支(master)中


# git merge B #即 将B合并到当前分支中

即 生成一次新提交,有两个父提交的最新的文件修改。(若最新的文件修改有冲突,需要进行冲突处理)

删除分支(带'-d' 选项)

git branch -d 要删除的分支

查看 本地和远程的分支

git branch -a

# 分支前的'*':当前HEAD 所指向的分支

查看分支状态(每次分支的最后一次提交)

git branch -v

查看合并/未合并的分支

git branch --merged #已合并的分支
git branch --no-merged #查看未合并工作的分支。用-d选项删除会失效。可以用-D选项强制删除

远程分支

是本地特殊的的分支,与远程仓库保持一致,不能被手工移动,即不能再远程分支上做提交。通常,用于远程分支的移动/同步。

git fetch 远程分支名 #拉取远程的分支内容到本地

rebase

git checkout experiment #切换到e分支
git rebase master #修改冲突文件

git checkout master #需要切换到当前执行rebase的分支,用其进行提交
git merge experiment #合并

每次提交都是一个快照,两个快照不出现冲突时,快照的关联关系是可以改变的。

适用于:本地的分支合并

当出现冲突(修改相同文件),冲突处理方式与merge相同。

但其如果出现冲突,必须使用当前执行rebase分支的提交,否则会引起后续的一系列冲突。

其他命令

git log 查看分叉历史

git log --oneline --decorate --graph --all 输出提交历史、各分支指向、项目分叉情况

分支的创建和销毁异常高效,因为创建一个分支 即 写入41字节(40个字符和一个换行符)

fast-forward快进:当合并操作没有需要解决的分歧,只是 简单的 将指针向前推进。

三方合并:将两个分支的末端所指的快照(c4和陈) 及两个分支的公共祖先(才),做一个合并。

一次合并提交:将三方合并的结果 作为一个新的快照(c6),并自动创建一个提交指向它。(特点:不止一个父提交)

贮藏(stash)

将 脏状态(跟踪文件的修改和 暂存的改动),保存到一个栈上。可以在任何时候重新应用

这些改动(甚至在不同分支上)

适用于 要切换分支,但不想提交工作。-> 推到栈上

git status #查看改动的状态
git stash #贮藏修改(通常会贮藏 已修改、暂存的已跟踪的文件)

# git stash 或是 git stash push 皆可贮藏

#当工作区干净时,可以切换到其他分支

git stash list #查看贮藏的内容
git stash apply #将 刚刚 贮藏的工作 重新应用

git stash  apply stash@{x} #指定应用某个贮藏


git stash apply --index #?? 重新应用暂存的修改

git stash drop 要移除的贮藏 #移除贮藏

git stash -u #贮藏任何未跟踪的文件

贮藏创建分支 并丢弃贮藏

git stash branch 新分支 
#检出贮藏工作所在的提交,并重新在那应用工作,应用成功后丢弃贮藏

清理(clean)

git clean #去冗余文件或 清理工作目录

git clean -f -d #移除 未跟踪的文件和 空的子目录
#-f 表示 强制执行,需要git配置变量clean.requireForce 没有显示设置为false


git clean -d -n  #演习,告诉你,将会移除什么
# -n 将会 移除什么(不移除,仅演习)

参考:怎样用git将一个分支的东西移动到另一个分支? - 知乎 (zhihu.com)

Pro Git(中文版) (gitee.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子元器件采购的数字化转型:智能采购工具的应用

电子元器件采购的数字化转型是采购领域的一项重要趋势&#xff0c;智能采购工具的应用在此过程中发挥了关键作用。以下是智能采购工具在电子元器件采购数字化转型中的应用方面的一些关键点&#xff1a; 供应链可见性&#xff1a; 智能采购工具可以提供对供应链的实时可见性。通…

晶尔忠产业集团全面启动暨表彰大会

八月下旬&#xff0c;三伏已尽&#xff0c;初秋遂至。夏日的余热还没有完全散去&#xff0c;初秋的热浪随之席卷而来&#xff0c;大地依旧绿意盎然&#xff0c;万物正是生长最猛烈的时期&#xff0c;为秋天的收获做最后的冲刺&#xff0c;这是一个充满生机的时节&#xff0c;也…

java:操作session

概念 服务器端会话技术&#xff0c;在一次会话的多次请求间共享数据&#xff0c;将数据保存在服务器端的对象中。 一次会话&#xff1a;网页只要不关闭就是一次会话&#xff0c;关闭后会话结束。 示例&#xff1a;会话共享 如下两个Servlet&#xff0c;在浏览器访问 sessio…

【MySQL】事务 详解

事务 详解 一. 为什么使用事务二. 事务的概念三. 使用四. 事务的特性原子性&#xff08;Atomicity&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolation&#xff09;持久性&#xff08;Durability&#xff09; 五. 事务并发所带来的问题脏读问题…

git 给分支添加描述

需求:分支多了不知道当前分支的用处可以使用git br用来描述 效果: 全局安装命令 npm i -g git-br 项目内使用 git br 给f-230825-4-zhou分支备注 git config branch.f-230825-4-zhou.description 用来开发第四迭代需求 再次git br查看效果

如何运用智能客服系统进行有效的客服分配?

企业竞争从最开始的拼竞争、拼功能到后来拼服务&#xff0c;现在又越来越多企业开始在客户体验方面展开竞争&#xff0c;谁能给客户带来优质的体验&#xff0c;谁赢得未来市场的可能性就更大。智能客服系统的应用则为企业提高客户服务质量贡献了大份力&#xff0c;其能够对客服…

华为云云服务器评测|老用户回归的初印象

华为云云服务器评测&#xff5c;老用户回归的初印象 前言一、新面孔1. 云耀云服务器2. 服务器特色 二、上手感官体验1. 性价比感受2. 推荐宝塔面板3. CloudShell登录4. 安全性 总结 前言 其实笔者接触华为云已经很久了&#xff0c;第一次使用的云服务器就是华为云。当时还是刚…

【AI】《动手学-深度学习-PyTorch版》笔记(二十二):单发多框检测(SSD)

AI学习目录汇总 1、介绍 SSD(Single Shot MultiBox Detector)单发多框检测。“Single shot”说明SSD算法属于one-stage(一段式)方法,“MultiBox”说明SSD是多框预测(多尺度锚框/特征图)。 SSD和YOLO一样都是采用CNN网络执行one-stage(一段式)检测,区别是: YOLO速…

【SpringMVC】参数传递与用户请求和响应

目录 一、Postman 工具使用 1.1 Postman安装 1.2 Postman的使用 1.2.1 创建WorkSpace工作空间 1.2.2 创建请求 二、参数传递 2.1 添加 Slf4j 依赖 2.2 普通传参 知识点1&#xff1a;RequestMapping 知识点2&#xff1a;RequestParam 2.3 路径传参 知识点3&#xff1…

Vue2电商前台项目——项目的初始化及搭建

Vue2电商前台项目——项目的初始化及搭建 Vue基础知识点击此处——Vue.js 文章目录 Vue2电商前台项目——项目的初始化及搭建一、项目初始化1、脚手架目录介绍2、项目的其他配置 二、项目的路由分析及搭建1、项目的路由分析2、开发项目的步骤3、非路由组件的搭建4、路由组件的搭…

大数据下的精准营销获客

2012年以后&#xff0c;大数据&#xff08;big data&#xff09;一词越来越多地被提及&#xff0c;人们用它来描述和定义信息爆炸时代产生的海量数据&#xff0c;并命名与之相关的技术发展与创新。哈佛大学社会学教授加里金说“这是一场革命&#xff0c;庞大的数据资源使得各个…

通过 Blob 对二进制流文件下载实现文件保存下载

原理&#xff1a;前端将二进制文件做转换实现下载: 请求后端接口->接收后端返回的二进制流(通过二进制流&#xff08;Blob&#xff09;下载,把后端返回的二进制文件放在 Blob 里面)->再通过file-saver插件保存 页面上使用&#xff1a; <span click"downloadFil…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

云原生架构如何助力大数据和AI技术在软件开发中的深度整合

文章目录 1. 云原生架构简介2. 大数据与云原生的融合a. 弹性计算和存储b. 容器化大数据应用c. 数据湖和数据仓库 3. AI与云原生的深度融合a. 弹性AI模型训练b. 容器化AI应用c. 自动化部署和监控 4. 对软件开发的影响a. 更快的开发周期b. 更低的成本c. 更高的灵活性和可伸缩性 5…

Activiti7工作流引擎:节点动态跳转

Activiti7中并没有实现从一个UserTask跳转到另一个UserTask&#xff0c;要实现节点之间自由跳转&#xff0c;需要通过自定义命令来实现。 Activiti7实现主要使用了命令模式(Command)和责任链模式(Intercepter)。 命令模式&#xff1a;主要是将每个操作封装成一个命令。如&…

什么是回调函数?写出一个示例?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 回调函数⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前…

Hadoop Hive入门

0目录 1.linux 安装hive 2.hive入门 3.hive高级语法1 1.linux 安装hive 先确保linux虚拟机中已经安装jdk&#xff1b;mysql和hadoop 并可以成功启动hadoop和mysql 下载hive对应版本到opt/install目录下并解压到opt/soft目录下 重命名 hive312 配置profile 文件&#xff…

结构体的简单介绍(3)——结构体的内存对齐

目录 结构体的内存对齐&#xff1a; 举例&提出疑问&#xff1f; 内存对齐&#xff1a; 对齐规则&#xff1a; 偏移数&#xff1a;类似于数组的下标&#xff0c;指的是结构体每个成员的首个地址距离结构体起始位置的距离。 用结构体内存对齐的图例示范&#xff1a;——…

【开发】安防监控/视频存储/视频汇聚平台EasyCVR优化播放体验的小tips

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&#xff0c;…

优化SOCKS5的方法

在今天的互联网世界中&#xff0c;保护个人隐私和提升网络速度至关重要。作为一种常用的代理协议&#xff0c;SOCKS5代理服务器不仅可以保护您的隐私&#xff0c;还可以实现更快速的网络访问。本文将为您介绍一些优化SOCKS5代理服务器的方法&#xff0c;以提高网络速度和安全性…