当前位置: 首页 > news >正文

GIT高级使用技巧

GIT高级使用技巧

导出GIT日志到文件

按照 <哈希> - <作者名> <作者邮箱地址> - <作者日期> : <commit描述> 的格式导出日志

git log --pretty=format:"%H - %an <%ae> - %ad : %s" master > log.txt

筛选日志并按照从旧到新的顺序排序,且只要提交哈希值(用于批量cherry-pick等操作)

cat log.txt | grep <匹配关键字> | awk '{print $1}' | tac

批量git cherry-pick

要批量应用 git cherry-pick 命令,可以使用 xargs配合 git cherry-pick 使用。具体步骤如下:

  1. 将要应用的提交 ID 复制到一个文本文件中,每行一个提交 ID。
  2. 执行以下命令:
cat file.txt | xargs git cherry-pick <options>

options 可以是 -m 1 ,意思是遇到merge commit的时候,因为merge commit会有多个parent,需要选择以哪个parent为主。-m 1 是指以第一个parent为主。如果不指定该选项,遇到merge commit会报错中断。

当使用 git cherry-pick 命令批量应用提交时,可能会发生冲突。如果发生冲突,Git 会停止应用提交,并提示您解决冲突。在解决冲突后,您需要继续应用剩余的提交。可以使用 git cherry-pick --continue 命令来继续应用提交,或者使用 git cherry-pick --abort 命令取消应用提交。

查看删除文件的历史记录

用以下命令去查看改名或者删除某个文件的commit。

git log --follow --diff-filter=RD --full-history <分支名> -- <文件路径>

git log会从分支的HEAD节点往上回溯,找到所有符合条件的commit。

强行更新submodules

submodules的内容有时候会丢失,但是却无法补全,执行git submodule update --init --recursive也无效。这时候需要强制更新 -f

git submodule update --init --recursive -f

查看某个文件从某个点开始回溯的历史变动路径

用以下命令打开gitk图形用户界面。

gitk <分支/tag/commit> <文件路径>
http://www.lryc.cn/news/166866.html

相关文章:

  • JavaScript中的垃圾回收机制
  • Java替换 html 中隐藏的空格字符
  • 微博情绪分类
  • 探索项目追踪平台的多样性及功能特点
  • git简单命令
  • Fiber 架构的起源和含义
  • Vue3高频面试题+八股文
  • 对数据库三大范式的理解
  • (matplotlib)如何不显示x轴或y轴刻度(ticks)
  • U8用友ERP本地部署异地远程访问:内网端口映射外网方案
  • 怎么提取一个python文件中所有得函数名称
  • 企业架构LNMP学习笔记37
  • vue3 自定义组件 v-model 原理解析
  • 【Linux从入门到精通】线程 | 线程介绍线程控制
  • 2023Web前端面试题及答案(一)
  • Rabbitmq参数优化
  • typescript环境搭建,及tsc命令优化
  • suning苏宁API接入说明(苏宁商品详情+关键词搜索商品列表)
  • 类和对象(3)
  • C++下基于粒子群算法解决TSP问题
  • vue3 ElementUI Switch before-change自动调用问题
  • 【chromium】windows 获取源码到本地
  • Nacos-Go-Sdk代码逻辑解析
  • 检测opencv是否安装成功
  • 如果你是独立开发者,你是先写前端还是先写后端?
  • Pytorch intermediate(四) Language Model (RNN-LM)
  • C++零碎记录(十)
  • 人类学习 vs. 机器学习
  • 【LeetCode-中等题】15. 三数之和
  • Apache Tomcat漏洞复现