文章目录

  • 一、前言
  • 二、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

tagbranch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 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仓库的所有提交记录,变为一个新仓库

专栏速览:

  1. Git使用 从入门到入土 收藏吃灰系列(一) 专栏前言
  2. Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置
  3. Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令
  4. Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理
  5. Git使用 从入门到入土 收藏吃灰系列(五) Git本地仓库搭建
  6. Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库
  7. Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥
  8. Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
  9. Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
  10. Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull
  11. Git使用 从入门到入土 收藏吃灰系列 (十一) 下载所有远程仓库分支
  12. Git使用 从入门到入土 收藏吃灰系列 (十二) git merge 与 git rebase
  13. Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff
  14. Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
  15. Git使用 从入门到入土 收藏吃灰系列 (十五) 自定义Git命令
  16. Git使用 (十六) Github上的小按钮
  17. Git使用 (十七) 解决Git Bash中文乱码

Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff相关推荐

  1. Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退

    文章目录 一.前言 二.Git远程命令实践 2.1git reset 移除暂存区 2.2 git log+git reflog+git reset 版本回退 一.前言 参考安装Git 详细安装教程 参 ...

  2. Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令

    文章目录 一.前言 二.常用的命令 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『Git』知道这些就够了_哔哩哔哩_bilibi ...

  3. Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理

    文章目录 一.前言 一.Git基本理论(核心) 1.1工作区 1.2工作流程 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『Gi ...

  4. Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库

    文章目录 一.前言 二.使用Gitee链接远程仓库(免密登录) 2.1链接仓库 2.2使用指令上传远程仓库 三.利用GitHub连接远程仓库(免密登录) 一.前言 参考安装Git 详细安装教程 参考视 ...

  5. Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull

    文章目录 一.前言 二.git push上传新的分支 三.git fetch 拉取远程仓库 四.git pull 拉取远程仓库 本节内容速览 二:git push使用 三:git fetch使用.为什 ...

  6. Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用

    文章目录 一.前言 二.Git分支 2.1什么是分支? 2.2 分支有什么用? 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 参考视频『G ...

  7. Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录

    文章目录 一.前言 二.清除git仓库的所有提交记录 本节速览 清除git仓库的所有提交记录 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 ...

  8. 一个命令让redis服务端所有信息无所遁形~(收藏吃灰系列)

    1.info命令作用 在redis客户端执行INFO 命令以便于计算机解析和人工阅读的简单格式返回有关redis服务端的所有信息和统计数据. 可选参数可用于选择特定的信息部分: Server 服务器基 ...

  9. 最新版Zookeeper常用命令总结(收藏吃灰系列)

    1.服务端常用命令 在完成zookeeper的伪集群部署之后(部署教程参考linux上部署最新版本zookeeper伪分布式集群),可在bin目录下执行这些命令 启动ZK服务: bin/zkServe ...

最新文章

  1. webassembly类型_WebAssembly 那些事儿
  2. C语言的数顺序输出与反序输出_只愿与一人十指紧扣_新浪博客
  3. ROS~kinectv1~边缘检测
  4. Js结束,项目进行中
  5. android的快速开发框架,FastAndroid
  6. 波司登的高端之路,难走!
  7. 一些不常用的代码汇总(不断更新)
  8. priority_queue优先队列
  9. 在webpack中使用eslint配置(详细教程)-js教程-PHP中文网
  10. 飞秋爱好者(WZ132)
  11. 全球唯一!华为nova5系列:有望搭载全新7nmSoC
  12. Android 内存管理之优化建议
  13. matlab 复频谱图,基于MATLAB实现连续信号与系统复频域分析
  14. html设置input透明背景,input背景透明的穿透问题_html/css_WEB-ITnose
  15. get与post的区别
  16. 混合动力系统的整车经济性开发与能量管理策略高级技术
  17. ArcGIS 把字段允许空值设为否
  18. 【Python学习】基于pytorch和pysimplegui实现中国人口预测算法部署
  19. Elasticsearch 最佳运维实践总结
  20. windows 2003找不到Dirext X的解决办法

热门文章

  1. linux网卡phy地址修改,【基础技能】Linux PHY驱动调试方法
  2. html5上传图片限制大小
  3. 电商秒杀 Springboot + Redis +RocketMq +Mysql
  4. QT添加库(静态库和动态库)
  5. MES系统的应用(下)
  6. 急求TWindowsMediaPlayer循环播放的问题的问题!
  7. BrainGNN:Interpretable Brain Graph Neural Network for fMRI
  8. ffmpeg h264转avi学习笔记
  9. 电脑提示vcomp100.dll丢失的解决方法
  10. ES6基础-为什么要用let和const