Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff
文章目录
- 一、前言
- 二、git stash 存储到堆栈
- 三、Git tag 标签
- 四、git cherry-pick 挑选合并
- 五、git diff
本节速览
git stash
堆栈git tag
标签git cherry-pick
挑选合并git diff
比较信息差异本节开始都是一些不怎么用的命令,或者一些使用技巧,了解即可
一、前言
- 参考安装Git 详细安装教程
- 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多
- 参考视频『Git』知道这些就够了_哔哩哔哩_bilibili,这个精华多,推荐看这个
- 参考视频7小时学会Git 基础全套完整教程(从入门到精通)_哔哩哔哩_bilibili,这个虽然长,但是他偏实践,对小白友好,特别有意思
- 附一个Git动画学习网站
- Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
讲讲小张的感受:我没有接触过Git
,所以看了很多视频,对于入门使用确实只要知道git clone
,git add
,git commit
,git push
,git merge
,确实也就足够了。但是我很好奇背后的原理,为什么要用git add
到暂存区而不是直接git commit
?很多指令之间为什么要按一定的顺序执行?所以这个系列我以初学的时候,小白的角度从安装到工作原理(有的是我自己的见解,如果感觉不对,欢迎指正),再到实际应用!另外,推荐看一遍第三个参考视频,然后看一下第四个参考视频,对工作原理的讲解和实际应用确实不错!
二、git stash 存储到堆栈
这个命令是用来处理bug的,初学可以新建一个分支,在新分支中解决完bug再和主分支合并。但是这一操作可以使用git stash
来完成
git stash 命令的用法
git stash的详细讲解_andyzhaojianhui的专栏-CSDN博客_git stash
三、Git tag 标签
在Github下载别人做好的软件都有这个界面。tag
是git版本库的一个标记,指向某个commit的指针。主要用于发布版本的管理,一个版本发布之后,我们可以为git打上v 1.0,v 1.1这样的标签。tag需要单独推送远程,不能使用git push
git push origin <tagName>
tag感觉跟branch有点相似,但是本质上和分工上是不同的:
tag 对应某次commit, 是一个点,是不可移动的
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag
tag
和 branch
的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支
# 标出标签
git checkout -b <branchName> <tagName>
# 或者先切换标签再新建分支
git checkout <tagName>
git switch -c <branchName>
git tag
常用指令
# 创建本地tag
git tag <tagName>
git tag -a <tagname> -m "XXX..." # 指定标签信息# 推送到远程仓库
git push origin <tagName># 本地有多条tag,一次推送全部
git push origin --tags# 切换标签 切换后,分支置空
git checkout <tagName># 查看本地某个 tag 的详细信息
git show <tagName># 查看本地所有 tag
git tag
git tag -l# 查看远程所有 tag
git ls-remote --tags origin# 本地 tag 的删除
git tag -d <tagName># 远程 tag 的删除
git push origin --delete tag <tagName>
Git中tag标签的使用_等待化茧成蝶的专栏-CSDN博客
四、git cherry-pick 挑选合并
这部分在网上找了这篇,感觉解释相当好,我就不写啦。FightFightFight的博客
git cherry-pick <哈希值>
五、git diff
git diff常用命令
# 当工作区有改动,暂存区为空,diff的对比是"工作区与最后一次commit提交的仓库的所有文件";
# 当工作区有改动,暂存区不为空,diff对比的是"工作区与暂存区的所有文件"。
git diff
git diff <filename> # 指定文件# 显示暂存区(已add但未commit文件)和最后一次commit(HEAD)之间的所有不相同文件的增删改
git diff --cached
git diff --staged# 比较暂存区和工作区最后一次提交的差别
git diff HEAD
git diff HEAD <filename> # 指定文件
git diff <哈希值> <filename> # 指定某一次提交# 查看最近一次提交的版本与往过去时间线前数X个的版本之间的所有同git diff HEAD中定义文件之间的增删改
git diff HEAD~X
git diff HEAD^^^…(后面有X个^符号,X为正整数)# 比较两个分支上最后 commit 的内容的差别
git diff <branch-Name1> <branch-Name2>
git diff <origin/branch-Name1> <branch-Name2> #比较远程分支与本地分支
git diff <branch-Name1> <branch-Name2> --stat # 显示简略内容
下节介绍
- 如何清除git仓库的所有提交记录,变为一个新仓库
专栏速览:
- Git使用 从入门到入土 收藏吃灰系列(一) 专栏前言
- Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置
- Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令
- Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理
- Git使用 从入门到入土 收藏吃灰系列(五) Git本地仓库搭建
- Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库
- Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥
- Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
- Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
- Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull
- Git使用 从入门到入土 收藏吃灰系列 (十一) 下载所有远程仓库分支
- Git使用 从入门到入土 收藏吃灰系列 (十二) git merge 与 git rebase
- Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff
- Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
- Git使用 从入门到入土 收藏吃灰系列 (十五) 自定义Git命令
- Git使用 (十六) Github上的小按钮
- Git使用 (十七) 解决Git Bash中文乱码
Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff相关推荐
- Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
文章目录 一.前言 二.Git远程命令实践 2.1git reset 移除暂存区 2.2 git log+git reflog+git reset 版本回退 一.前言 参考安装Git 详细安装教程 参 ...
- Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令
文章目录 一.前言 二.常用的命令 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『Git』知道这些就够了_哔哩哔哩_bilibi ...
- Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理
文章目录 一.前言 一.Git基本理论(核心) 1.1工作区 1.2工作流程 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『Gi ...
- Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库
文章目录 一.前言 二.使用Gitee链接远程仓库(免密登录) 2.1链接仓库 2.2使用指令上传远程仓库 三.利用GitHub连接远程仓库(免密登录) 一.前言 参考安装Git 详细安装教程 参考视 ...
- Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull
文章目录 一.前言 二.git push上传新的分支 三.git fetch 拉取远程仓库 四.git pull 拉取远程仓库 本节内容速览 二:git push使用 三:git fetch使用.为什 ...
- Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
文章目录 一.前言 二.Git分支 2.1什么是分支? 2.2 分支有什么用? 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『G ...
- Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
文章目录 一.前言 二.清除git仓库的所有提交记录 本节速览 清除git仓库的所有提交记录 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 ...
- 一个命令让redis服务端所有信息无所遁形~(收藏吃灰系列)
1.info命令作用 在redis客户端执行INFO 命令以便于计算机解析和人工阅读的简单格式返回有关redis服务端的所有信息和统计数据. 可选参数可用于选择特定的信息部分: Server 服务器基 ...
- 最新版Zookeeper常用命令总结(收藏吃灰系列)
1.服务端常用命令 在完成zookeeper的伪集群部署之后(部署教程参考linux上部署最新版本zookeeper伪分布式集群),可在bin目录下执行这些命令 启动ZK服务: bin/zkServe ...
最新文章
- webassembly类型_WebAssembly 那些事儿
- C语言的数顺序输出与反序输出_只愿与一人十指紧扣_新浪博客
- ROS~kinectv1~边缘检测
- Js结束,项目进行中
- android的快速开发框架,FastAndroid
- 波司登的高端之路,难走!
- 一些不常用的代码汇总(不断更新)
- priority_queue优先队列
- 在webpack中使用eslint配置(详细教程)-js教程-PHP中文网
- 飞秋爱好者(WZ132)
- 全球唯一!华为nova5系列:有望搭载全新7nmSoC
- Android 内存管理之优化建议
- matlab 复频谱图,基于MATLAB实现连续信号与系统复频域分析
- html设置input透明背景,input背景透明的穿透问题_html/css_WEB-ITnose
- get与post的区别
- 混合动力系统的整车经济性开发与能量管理策略高级技术
- ArcGIS 把字段允许空值设为否
- 【Python学习】基于pytorch和pysimplegui实现中国人口预测算法部署
- Elasticsearch 最佳运维实践总结
- windows 2003找不到Dirext X的解决办法
热门文章
- linux网卡phy地址修改,【基础技能】Linux PHY驱动调试方法
- html5上传图片限制大小
- 电商秒杀 Springboot + Redis +RocketMq +Mysql
- QT添加库(静态库和动态库)
- MES系统的应用(下)
- 急求TWindowsMediaPlayer循环播放的问题的问题!
- BrainGNN:Interpretable Brain Graph Neural Network for fMRI
- ffmpeg h264转avi学习笔记
- 电脑提示vcomp100.dll丢失的解决方法
- ES6基础-为什么要用let和const