2、git进阶操作

2、git进阶操作

2.1.1 分支的创建

命令参数含义
git branch (git checkout -b)<new_branch> <old_branch>表示创建分支
-d <-D>删除分支 –d如果分支没有合并,git会提醒,-D强制删除
-a -v查看分支
-m重新命名分支
commit id从指定的commit id签出代码 git branch branch_name commit id
$ git push origin branch_name将本地分支推到远程
$ git push origin branch_name --delete 将远程分支删除
### 2.1.2 分支的合并
命令参数含义
git merge<branch_name>需要合并的分支
--abort终止合并,并回复文件
--continue继续合并
### 2.1.3 git rebase
命令参数含义
git rebase<branch_1> <branch_2>将branch_1上面的移动到branch_2
--abort终止rebase
--continue继续rebase
-i进入交互模式

2.2 git reset/revert/checkout撤销操作

命令参数含义
git reset--soft commit_id撤销到某个commit,不修改工作区和索引区内容
--mixed commit_id 撤销到某个commit,不修改工作区,修改索引区内容
--hard commit_id撤销到某个commit,并重置工作区和索引区内容
HEAD file_name撤销索引区指定的file_name
git revertcommit_id只撤销某个commit
git checkout-- . 撤销工作区所有文件

2.3 git remote远程服务器操作

创建仓库
git clone --bare DataStruct-Algorithm /F/datastruct-algorithm.git
git init --bare DataStruct_algorithm.git
命令参数含义
git remote-v查看详细的信息
show server_name查看主机的详细信息
add server_name web_site添加主机
rm server_name删除主机
rename old_server_name new_ server_name修改主机名

2.4 git log高级用法

命令参数含义
git log-n表示查看最近提交的n条记录
--graph显示当前分支提交记录以图形方式展示,后面—all 表示所有的分支
--date=short查看提交的时间
-p表示提交文件的修改了那些内容
file_name表示查看file_name文件的提交记录
commit_id..commit_id查看两个commit id之间的提交记录
--since=<date>自date以来的记录
--before=<date>表达date之前的记录
--after=<date>表示date之后的记录
--until=<date>表达直到date之后的记录
$ git log --since="2019-07-11" --until="2019-07-16" --date=short\n 表示2019-07-11~2019-07-16(不包括16号)之间提交的记录
--grep=<contents>根据提交的message内容进行匹配
--author=”author_name”根据作者名来搜索
--skip=n跳过前面的n条记录
--stat显示提交的文件
--left-right branch1…branch2比较两个分支的commit差异
命令参数含义
git reflog show查看当前分支的记录
--all查看所有分支的记录
在找到commit id之后可以使用cherry-pick branch等命令 reflog有个特点就是它只存在本地记录里面,并不会上传到服务器上

2.5 git diff/show查看提交详情

2.5.1 diff
命令参数含义
git diff不加参数尚未缓存的修改(还未执行add命令)
--cached已经缓存的修改
<branch_name1> <branch_name2> [file_name]比较两个分支file_name的差异
commit_id commit_id比较两个commit id 区别
3.5.2 show
命令参数含义
git show<commit_id>显示commit id提交修改的内容
<commit_id> <file_name>查看commit id 中对应的file_name修改内容
<tag_name>查看tag信息
### 2.6 git tag操作
命令参数含义
git tag-m注释信息
-f强制覆盖
-d删除
-l列出所有的tag
-n列出详细信息
$ git tag v2.0.0.0 –m “new version v2.0.0.0” $ git ls-remote --tags <server_name>查看远程tag $ git fetch <server_name> <tag_name> 拉取远程tag $ git push --delete <server_name> <tag_name> 删除远程的tag

注意在checkout tag的时候,如果我们在当前的tag上做了提交,就会造成一个游离的HEAD现象,这是个非常危险的操作,有可能会造成你的commit丢失问题。

2.7 git stash操作

stash的查看,增加,删除,对比,应用

命令参数含义
git stashsave [message]保存stash,并且有注释信息
show [stash] -p查看某个stash的详细信息
drop [stash]删除某个stash
pop将当前的第一个stash应用到当前的分支上
apply [stash]应用指定的stash,并且保存stash不变化
clear清空stash
list查看所有的stash

2.8 git blame操作

命令参数含义
git blame file_name查看这个文件都有谁提交的
file_name -L num1:num2查看这个文件从num1行到num2行都有谁提交的
file_name –L:function_name查看这个文件里面函数最后一次谁修改过
--colors-lines显示颜色标记
这个命令有时候可以结合grep使用,主要是为了精确查找信息
### 2.9 git patch 操作
1.先生成patch文件
$ git format-patch start_commit_id..end_commit_id
$ git format-patch –n3
2.可以事先检测在合并的时候是否存在冲突
$ git apply --check patch_file
3.合并patch文件
$ git am patch_file
4.撤销patch
$ git apply –R patch_file

2.10 git submodule管理大型项目的利剑

$ git init –bare test_submodule.git
$ git submodule add git@github.com:MingYueRuYa/cpp_inside_object.git
$ git submodule add git@github.com:MingYueRuYa/cpp_study.git
$ git commit –m “add submodule”
$ git push
拉取远程分支
$ git clone git@github.com:MingYueRuYa/test_submodule.git
$ git submodule init
$ git submodule update (git submodule update –init 将上面的两步合起来)
$ git submodule foreach git pull
$ git submodule foreach git submodule update
$ git rm -rf submodule_name (删除submodule)

在这里插入图片描述

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

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

相关文章

基于广义正态分布算法优化概率神经网络PNN的分类预测 - 附代码

基于广义正态分布算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于广义正态分布算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于广义正态分布优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xf…

2023亚太杯数学建模C题思路分析 - 我国新能源电动汽车的发展趋势

1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料&#xff09;&#xff0c;将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…

MySQL与Redis如何保证数据的一致性

文章目录 MySQL与Redis如何保证数据的一致性&#xff1f;不好的方案1. 先写 MySQL&#xff0c;再写 Redis2. 先写 Redis&#xff0c;再写 MySQL3. 先删除 Redis&#xff0c;再写 MySQL 好的方案4. 先删除 Redis&#xff0c;再写 MySQL&#xff0c;再删除 Redis5. 先写 MySQL&am…

五种多目标优化算法(NSDBO、NSGA3、MOGWO、NSWOA、MOPSO)求解微电网多目标优化调度(MATLAB代码)

一、多目标优化算法简介 &#xff08;1&#xff09;非支配排序的蜣螂优化算法NSDBO 多目标应用&#xff1a;基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度&#xff08;MATLAB&#xff09;-CSDN博客 &#xff08;2&#xff09;NSGA3 NSGA-III求解微电网多目标…

kafka精准一次、事务、幂等性

Kafka事务 消息中间件的消息保障的3个级别 At most once 至多一次。数据丢失。At last once 至少一次。数据冗余Exactly one 精准一次。好&#xff01;&#xff01;&#xff01; 如何区分只要盯准提交位移、消费消息这两个动作的时机就可以了。 当&#xff1a;先消费消息、…

【机器学习】聚类(一):原型聚类:K-means聚类

文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. Kmeans类a. 构造函数b. 闵可夫斯基距离c. 初始化簇心d. K-means聚类e. 聚类结果可视化 2. 辅助函数3. 主函数a. 命令…

百度云加速免费版下线,推荐几款目前仍旧免费的CDN

近日&#xff0c;百度云加速实施了新政策&#xff0c;将不再支持免费套餐服务。现在免费的CDN也越来越少了&#xff0c;推荐几款目前仍旧免费的CDN&#xff0c;大家且用且珍惜&#xff01; 1、雨云【点此直达】 源站为雨云产品可以免费使用CDN&#xff0c;源站非雨云产品流量包…

【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列2

14 【MATLAB】科研绘图第十四期表示散点分布的双柱状双Y轴统计图 %% 表示散点分布的双柱状双Y轴统计图%% Made by Lwcah &#xff08;公众号&#xff1a;Lwcah&#xff09; %% 公众号&#xff1a;Lwcah %% 知乎、B站、小红书、抖音同名账号:Lwcah&#xff0c;感谢关注~ %% 更多…

【数据结构】二叉排序树(c风格、结合c++引用)

目录 1 基本概念 结构体定义 各种接口 2 二叉排序树的构建和中序遍历 递归版单次插入 非递归版单次插入 3 二叉排序树的查找 非递归版本 递归版本 4 二叉排序树的删除&#xff08;难点&#xff09; 1 基本概念 普通二叉排序树是一种简单的数据结构&#xff0c;节点的值…

Interactive Visual Data Analysis

Words&Contents Home | Interactive Visual Data Analysis Book Outline 这本书对视觉、互动和分析方法进行了系统而全面的概述&#xff0c;作为数据可视化方面比较好的读物&#xff1b; 目录 Words&Contents Book Outline &#xff08;一&#xff09;Introduct…

【教学类-06-07】20231124 (55格版)X-X之间的加法、减法、加减混合题

背景需求 在大四班里&#xff0c;预测试55格“5以内、10以内、20以内的加法题、减法题、加减混合题”的“实用性”。 由于只打印一份20以内加法减法混合题。 “这套20以内的加减法最难”&#xff0c;我询问谁会做&#xff08;摸底幼儿的水平&#xff09; 有两位男孩举手想挑…

c语言数字转圈

数字转圈 题干输入整数 N&#xff08;1≤N≤9&#xff09;&#xff0c;输出如下 N 阶方阵。 若输入5显示如下方阵&#xff1a; * 1** 2** 3** 4** 5* *16**17**18**19** 6* *15**24**25**20** 7* *14**23**22**21** 8* *13**12**11**10** 9*输入样例3输出样例* 1*…