git branch 分支

分支的定义

一个分支是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 远程分支名 #拉取远程的分支内容到本地

删除远程分支

git push origin --delete [branch_name]

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 没有显示设置为falsegit clean -d -n  #演习,告诉你,将会移除什么
# -n 将会 移除什么(不移除,仅演习)

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【恒生电子内推码】

Hello&#xff0c;我是恒生电子股份有限公司的校园大使&#xff0c;不想简历投递后“泡池子”&#xff0c;登录链接&#xff1a;campus.hundsun.com/campus/jobs&#xff0c;填写我的推荐码&#xff1a;EZVJR0&#xff0c;投递&#xff0c;简历第一时间送到HR面前&#xff0c;快…

Echarts图表跟随父容器的变化自适应

如果页面中有多个图表 隐藏/展开左边侧边栏echarts图表自适应 <div class"line"><div class"title">制冷站关键参数</div><div id"chartLine1" style"width: 100%;height:85%;"></div></div><…

【Linux】进程的优先级

我们都知道进程等待需要cpu处理的&#xff0c;那就需要一个数据结构来记录要被cpu处理的进程&#xff0c;那这些进程是按一个什么样的方式在这个结构中进行等待呢&#xff1f;下面就要谈到进程的优先级了&#xff1a; 目录 一、进程的优先级的概念 二、查看进程的优先级 2.1…

JavaScript 之 Symbol 数据类型

一、简介 ​ symbol类型是ES6新引入的一种基本数据类型&#xff0c;该类型具有静态属性和静态方法。其中静态属性暴露了几个内建的成员对象&#xff0c;静态方法暴露了全局的symbol注册。 ​ symbol类型具有以下特点&#xff1a;① 唯一性&#xff1a;每个symbol值都是唯一的…

如何实现小程序与h5页面间的跳转

接到新需求&#xff0c;要在小程序页面内点击按钮实现跳转h5&#xff0c;一开始没接触过&#xff0c;还挺头疼的&#xff0c;但真正做起来&#xff0c;也就那么一回事啦&#xff0c;废话少说&#xff0c;直接上 1. 配置域名 先登录小程序开发平台&#xff0c;将页面需要跳转的…

Mysql--技术文档--索引-《索引为什么查找数据快?》-超底层详细说明索引

索引的概念 在MySQL中&#xff0c;索引是一种数据结构&#xff0c;它被用于快速查找、读取或插入数据。索引能够极大地提高数据库查询的速度。 索引的工作方式类似于图书的索引。如果你想在图书馆找到一本书&#xff0c;你可以按照书名进行查找。书名就像是一个索引&#xf…

高通DSP架构和HVX指令介绍

1. Qualcomm Snapdragon™处理器 Qualcomm Snapdragon™是高通的移动平台处理器,是一种系统级芯片(SoC),包含了CPU、GPU、DSP、调制解调器、无线电、摄像头处理器、安全处理器等多种功能。Snapdragon处理器广泛应用于智能手机、平板电脑、智能手表、智能音箱等移动设备中。…

Elasticsearch安装,Springboot整合Elasticsearch详细教程

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;能够实现近乎实时的搜索。 Elasticsearch官网https://www.elastic.co/cn/ 这篇文章主要简单介绍一下Elasticsearch&#xff0c;Elasticsearch的java API博主也在学习中&#xff0c;文章会持续更新~ …

网络编程相关知识

写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接多…

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

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

RGMII 与 GMII 转换电路设计

文章目录 前言一、RGMII 接口的信号说明二、RGMII 发送的 FPGA 实现方案1. OPPOSITE_EDGE 模式2. SAME_EDGE 模式三、使用 FPGA 实现 RGMII 接口前言 RGMII 是 IEEE802.3z 标准中定义的千兆媒体独立接口(Gigabit Medium Independent Interface)GMII 的一个替代品。相较于 GM…

elementPlus + table 树形懒加载 新增,删除,修改 局部刷新

#直接上代码# 1.表格数据 2.数据源 <m-table ref"cTable" v-if"Object.keys(props.tableData).length" :options"props.tableOptions" :data"props.tableData.data" :isLoading"props.tableData.loading" elementLo…