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.rhkb.cn/news/123715.html

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

相关文章

企业架构LNMP学习笔记9

nginx配置文件定义php-fpm服务&#xff1a; 编写测试文件&#xff1a; vim /usr/local/nginx/html/index.php 内容&#xff1a; <?phpphpinfo(); 在nginx的配置文件中配置&#xff1a; 修改配置文件&#xff0c;告知nginx如果收到.php结尾的请求&#xff0c;交由给php-…

[论文笔记]SiameseNet

引言 这是Learning Text Similarity with Siamese Recurrent Networks的论文笔记。 论文标题意思是利用孪生循环神经网络学习文本相似性。 什么是孪生神经网络呢?满足以下两个条件即可: 输入是成对的网络结构和参数共享(即同一个网络)如下图所示: 看到这种图要知道可能代…

CSS流光按钮-圆形

主要思路 仅保留一条边框 border-radius 50%drop-shadow动画 animation keyframes 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

PCL 二次曲面拟合法计算点云高斯、平均曲率与法向量(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 二次曲面方程如下: z ( x , y ) = a

WebRTC 安全之一

WebRTC 的安全需要满足三个基本需求 Authentication 用户访问需要认证Authorization 用户访问需要授权Audit 用户的访问应该可被追踪和审查 其中前两项也可以归结为 CIA Confidentiality 机密性&#xff1a;信息需要保密&#xff0c; 访问权限也需要控制Integrity 完整性&#…

docker 笔记2 Docker镜像和数据卷

参考&#xff1a; 1.镜像是什么&#xff1f;&#xff08;面试题&#xff09; 是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文…

用python开发一个炸金花小游戏

众所周知&#xfeff;扑克牌可谓是居家旅行、桌面交友的必备道具&#xff0c; 今天我们用 Python 来实现一个类似炸金花的扑克牌小游戏&#xff0c;先来看一下基本的游戏规则。 炸&#xff08;诈&#xff09;金花又叫三张牌&#xff0c;是在全国广泛流传的一种民间多人纸牌游戏…

新风机是什么?

新风机是空气净化设备中的一种&#xff0c;能够将新鲜外界空气引入室内&#xff0c;同时将室内的污浊空气排出去&#xff0c;从而实现室内空气的循环和净化。新风机主要是由风机、过滤器、热交换器和控制面板等部分组成。 风机&#xff1a;新风机中风机是一个非常重要的部件&am…

windows环境搭建ELK

目录 资源下载&#xff08;8.9.1&#xff09; ES安装、注册、使用 Kibana安装、注册、使用 Logstash安装、注册、使用 Filebeat安装、使用&#xff08;如果只有一个数据流&#xff0c;则不需要使用filebeat&#xff0c;直接上logstash即可&#xff09; 资源下载&#xff0…

Vivado 添加FPGA开发板的Boards file的添加

1 digilent board file 下载地址 下载地址 &#xff1a; https://github.com/Digilent/vivado-boards 2 下载后 3 添加文件到 vivado 安装路径 把文件复制到 Vivado\2019.1\data\boards\board_files4 创建工程查看是否安装成功

​Vue + Element UI前端篇(二):Vue + Element 案例 ​

Vue Element UI 实现权限管理系统 前端篇&#xff08;二&#xff09;&#xff1a;Vue Element 案例 导入项目 打开 Visual Studio Code&#xff0c;File --> add Folder to Workspace&#xff0c;导入我们的项目。 安装 Element 安装依赖 Element 是国内饿了么公司提…

MySQL的故事——创建高性能的索引

创建高性能的索引 文章目录 创建高性能的索引一、索引基础二、索引的优点三、高性能的索引策略 一、索引基础 要理解MySQL中索引是如何工作的&#xff0c;最简单的方法就是去看看一本书的“索引 ”部分&#xff1a;如果在一本书中找到某个特定主题&#xff0c;一般会先看书的“…

【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

作者简介 前言 博主之前写过一个完整的MQ系列&#xff0c;包含RabbitMQ、RocketMQ、Kafka&#xff0c;从安装使用到底层机制、原理。专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12142400.html?spm1001.2014.3001.5482 本文是该系列的清单综述&#xf…

RunnerGo怎么做性能测试

RunnerGo是一个功能强大&#xff0c;使用简单的性能测试平台&#xff0c;它基于go语言开发&#xff0c;支持接口管理、自动化测试、性能测试等功能。 RunnerGo有什么特点 支持并发模式、错误率模式、阶梯模式、每秒请求数模式、响应时间模式等多种压测模式&#xff0c;支持自…

.NET之后,再无大创新

回想起来&#xff0c;2001年发布的.NET已经是距离最近的一次软件开发技术的整体创新了&#xff0c;后续的新技术就没有在各个端都这么成功的了。.NET是Windows平台下软件开发技术的巨大变革。在此之前&#xff0c;有VB、C&#xff08;MFC&#xff09;、JSP&#xff0c;在此之后…

数学建模-大模型的对比

引用老哥数学建模视频 【ChatGPT 4.0】在数学建模中的应用&#xff01;算法Matlab写作&#xff0c;全面测评六款大模型软件&#xff0c;直接使用&#xff01; 哪些问题可以问GPT 一、算法应用 1帮我总结一下数学建模有哪些预测类算法&#xff1f; 2灰色预测模型级比检验是什么…

递归算法学习——N皇后问题,单词搜索

目录 ​编辑 一&#xff0c;N皇后问题 1.题意 2.解释 3.题目接口 4.解题思路及代码 二&#xff0c;单词搜索 1.题意 2.解释 3.题目接口 4.思路及代码 一&#xff0c;N皇后问题 1.题意 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上…

TCP/IP基础

前言&#xff1a; TCP/IP协议是计算机网络领域中最基本的协议之一&#xff0c;它被广泛应用于互联网和局域网中&#xff0c;实现了不同类型、不同厂家、运行不同操作系统的计算机之间的相互通信。本文将介绍TCP/IP协议栈的层次结构、各层功能以及数据封装过程&#xff0c;帮助您…

【计算机网络】https协议

目录 概念的准备 什么是加密 为什么需要加密 常见的加密方式 对称加密 非对称加密 数据摘要(数字指纹) 数字签名 https的工作过程 方案一&#xff1a;只使用对称加密 方案二&#xff1a;只使用非对称加密 方案三&#xff1a;双方都采用非对称加密 方案四&#xff…

Vue3实现可视化拖拽标签小程序

介绍 实现功能&#xff1a;可视化标签拖拽&#xff0c;双击标签可修改标签内容 HTML结构 <div class"box" v-move><div class"header">标签1</div><div dblclick"startEditing" v-if"!isEditing">{{content…