Git 进阶 高级用法,重要命令记录

news2024/10/6 13:18:03

本篇文章用于记录Git高级用法,新手可以看我的另一篇文章:Git基础教学。

Git
在这里插入图片描述
git fetch 是git pull 的细分步骤,git pull 包含了git fetch
git pull origin master
上述命令其实相当于git fetch + git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

git clone git pull 区别:
git clone 直接把整个项目下载下来,里面包括项目.git 文件,会搞出来两个.git文件;而git pull 需要 git remote add 之后才可以 只有一个.git文件。

git fetch 实战用途:用于获取远程仓库各个分支的提交信息,但不会主动合并到工作区
git fetch origin 下载远程仓库所有分支的提交
git fetch origin + 分支名字 只同步某个分支的提交
git merge origin/分支名 在当前分支合并特定远程远程分支的提交
git branch 查看本地仓库分支
git branch -r 查看远程仓库分支
git branch -a 查看所有仓库分支
删除本地远程仓库信息
git branch -r -d + origin/仓库名字
在这里插入图片描述

切换分支 git checkout + 分支名字
创建分支 git checkout -b + 分支名字
删除本地分支 git branch -d + 分支名字
git fetch 没merge前强制删除:git branch -D + 分支名字
删除远程分支 git push origin --delete + 分支名字

git配置远程仓库:
git remote -v 查看当前仓库有没有匹配远程仓库
git remote add 远程仓库别名(一般第一个常取用origin) SSH协议地址
例子:git remote add origin git@192.168.1.27:Android/A600.git
git remote rm 远程仓库别名

ssh密钥生成命令:
ssh-keygen -t rsa -C “chenlangl@outlook.com”

git log 命令是针对一个分支,或者只有连续相等commit信息的不同分支使用, 用处是根据tag 拉分支,不管是从高往低打tag,还是从低往高打tag都行。
这句话很抽象,是高度总结。
git log --pretty==oneline 每个提交只打印一行
git log --oneline 在上一个命令的基础上,hash值只显示一部分
git log --graph --all 查看所有分支演进图
git log --graph 查看当前分支演进图
git fetch + git log --graph --all 可以查看整个

git tag 用于 标记一些 重要节点版本,以便于在重要版本上进行二次开发。
git tag : 直接列出所有的标签
git tag -l xxxx : 可以根据 xxxx 进行标签的筛选
git show 标签名 : 查看标签的信息,(轻量标签 和 附注标签 的信息是不一样的)
创建 轻量tag:
git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】
git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签】 提交版本号指的就是提交hash值
创建 附注tag:
-a : 理解为 annotated 的首字符,表示 附注标签
-m : 指定附注信息
git tag -a 标签名称 -m 附注信息 :直接给当前的提交版本创建一个 【附注标签】
git tag -a 标签名称 提交版本号 -m 附注信息 :给指定的提交版本创建一个【附注标签】
删除tag:
git tag -d 标签名称 : 删除指定名称的标签
推送 tag 到远程仓库:
默认情况下,git push 命令并不会把标签推送到远程仓库中。
因此,我们必须 手动地将 本地的标签 推送到远程仓库中。
git push origin 标签名称 : 将指定的标签上传到远程仓库
git push origin --tags : 将所有不在远程仓库中的标签上传到远程仓库

本地选定提交打tag:git tag +name +hash点

删除远程仓库上地标签同样也需要手动执行:
$ git push origin :regs/tags/标签名称
or
$ git push origin --delete 标签名称
两个命令一样,都是删除指定的标签
打tag的真正作用:检出标签,说人话就是,可以以一个tag点为基础版本拉出一个分支。
git checkout -b 分支名称 标签名称

git cherry-pick
常规用法:git cherry-pick + hash值(所谓的commit id)
在cherry-pick操作中,可能会遇到冲突。当Git无法自动解决冲突时,我们需要手动解决冲突。当冲突发生时,Git会将冲突的文件标记为“Unmerged”,我们需要在文件中手动解决冲突,并使用以下命令标记冲突已解决:
git add BashCopy完成冲突解决后,可以继续cherry-pick操作:
git cherry-pick --continue


git merge
一般先get fetch origin ,在使用git merge +origin/分支名 选择合并哪个分支的内容
本地merge更简单了,直接git merge + 分支名

git rebase
git merge进阶版本,使用rebase命令 git log --graph的图上不会有交叉点,也就是合入的分支不会产生新的merge点。
一般用法:举个例子,将 branch4分支的代码rebase到master分支上。
git checkout branch4
使用rebase命令把自己的commit信息复制到master分支上
git rebase master
git checkout master
git merge branch4

git show
查看某次提交 涉及的文件 及具体的修改内容:git show +hash值
仅仅查看涉及的文件:git show + hash值 + --stat

git blame

git config --list 查看所有的配置信息
git config --global --list 查看全局配置信息
git config --local --list 查看当前仓库的配置信息
–global 是当前用户的
–system 是整个系统的
–local 是当前项目的

git diff
git diff --cached 比较暂存区和本地仓库的区别

git reset --soft HEAD^
将上一次 commit提交 回退到未提交状态

解开冲突,都是解完然后 再 --continue恢复

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

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

相关文章

msvcr120.dll丢失怎样修复,更了解msvcr120.dll文件从而解决丢失问题

在电脑使用过程中,"msvcr120.dll丢失"是常见的错误提示之一。那么,今天就和大家聊聊msvcr120.dll文件,如果msvcr120.dll文件丢失的问题时什么原因导致的,让我们仔细来看一下msvcr120.dll是什么以及msvcr120.dll丢失怎样…

【二】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

教学管理系统201703153 教学管理系统数据库展示 成绩表展示 课程表展示 学生表展示 院系表展示 一、基本操作 设置复合主键 设置其他表的主键 设置字段取值范围 二、简单操作 第一题 第二题 第三题 第四题 结尾 最后,感谢您阅读我的文章,希望这些内容能…

2024年最受欢迎的15款缺陷管理工具

本文整理分享了15款再2024年受欢迎的bug(缺陷)跟踪管理工具:1.PingCode;2.Worktile;3.SpiraTeam;4. Jira Software;5. BugHerd;6. Zoho Projects;7.SmartSheet&#xff1…

linux实现远程文件夹共享-samba

目录 问题描述Samba如何挂载常用参数临时挂载实例一种长期挂载方法(已失败,仅供参考)查看挂载取消挂载umount失败 问题描述 我的代码需要访问存在于两个系统(win和linux)的文件夹,我不是文件夹的创建者&am…

【大数据】-- 创建 Paimon 外部表

如今,在数据湖三剑客(delta lake、hudi、iceberg)之上,又新出一派: apache paimon。我们恰好在工作中遇到,以下介绍在 dataworks 上,使用 maxcompute odps sql 创建 apache paimon 外部表的一些…

不可不知!AI大模型的力量超乎你的想象!

AI大模型是通过深度学习算法和人工神经网络训练出的具有庞大规模参数的人工智能模型。这些模型使用大量的多媒体数据资源作为输入,并通过复杂的数学运算和优化算法来完成大规模的训练,以学习和理解到输入数据的模式和特征。 想象一下,在一个…

【C++】string 类

1. 标准库中的string类 注意: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 比特就业课 3. string在底层实际是:basic_string模板类的别名,typedef b…

知识图谱与LLMs:微调 VS RAG、LLM的局限性以及如何克服

原文地址:Knowledge Graphs & LLMs: Fine-Tuning Vs. Retrieval-Augmented Generation 2023 年 6 月 6 日 GitHub:https://github.com/neo4j/NaLLM 大型语言模型 (LLM) 的第一波炒作来自 ChatGPT 和类似的基于网络的聊天机器人,相信在…

国货当自强,亿道3款手持新品同步上市

深圳市亿道信息股份有限公司是国内知名的加固型移动计算机提供商,同时也是国内较大的行业定制及终端产品方案公司之一。 过去我们一直专注于平板电脑集成RFID射频识别、电子标签技术的研发生产与销售,以成熟的平板电脑制造技术,为客户提供RF…

重学SpringBoot3-日志Logging

重学SpringBoot3-日志Logging 引言默认日志配置日志门面如何实现默认配置 自定义日志配置日志级别日志分组日志格式日志输出自定义 Logback 配置切换日志框架 日志使用方式一:LoggerFactory 获取Logger对象方式二:引入 lombok 总结 引言 日志记录是任何…

记录一则 线上域名证书更新及cdn证书更新

本篇为阿里云免费证书更新记录。 登录阿里云账号 搜索数字证书管理服务管理控制台 点击创建证书 输入你的域名 填写相关信息(注:域名验证方式选择文件验证) 等待审核通过(时间不久,一般为半小时内) …

RabbitMQ(三):AMQP协议

目录 1 AMQP协议1.1 AMQP协议介绍1、AMQP是什么2、消息代理中间件的职责 1.2 AMQP 0-9-1模型1、AMQP的工作过程2、交换器和交换器类型3、队列队列属性队列名称队列持久化 1.3 几个概念1、绑定2、消费者3、消息确认4、预取消息5、消息属性和有效载荷(消息主体&#x…

leetcode 经典题目42.接雨水

链接:https://leetcode.cn/problems/trapping-rain-water 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思路分析 首先,我们需要遍历数组,对于每个元素&am…

探秘C语言:如何轻松求解正整数公因子个数?

本篇博客会讲解力扣“2427. 公因子的数目”的解题思路,这是题目链接。 本题的思路是: 由于a和b公因子的个数就是a和b的最大公约数的因子的个数,所以我们需要思考以下2个问题: 如何求解最大公约数?如何求解正整数的因…

性能测试总结 —— 基础理论篇!

随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Loadrunner。认为LR就等于性能测试&a…

事件流、事件捕获、事件冒泡、事件委托

一、事件流 事件流指的是事件完整执行过程中的流动路径,分为捕获阶段、冒泡阶段。如上图 二、事件捕获 当一个元素的事件被触发时,会从DOM的根元素开始,依次调用同名事件(从外到里,从父到子)。 DOM.addEve…

【MySQL】数据库设计

目录 数据库设计基本任务 软件项目开发周期中数据库设计数据库设计的基本步骤解释需求分析需求分析的三个步骤:1.需求调查:2.分析数据字典内容定义数据的方法案例 3. 评审 概念结构设计概念模型概念结构设计E-R图概念模型组成元素:关系解释案例分析 逻辑…

网络安全: Kali Linux 进行 SSH 渗透与防御

目录 一、实验 1.环境 2.nmap扫描目标主机 3.Kali Linux 进行 SSH 渗透 3.Kali Linux 进行 SSH 防御 二、问题 1.SSH有哪些安全配置 一、实验 1.环境 (1)主机 表1 主机 系统版本IP备注Kali Linux2022.4 192.168.204.154(动态&…

基于springboot+vue的农商对接系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

110. 平衡二叉树【简单】

110. 平衡二叉树【简单】 题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:r…