• GIT高级使用技巧


    GIT高级使用技巧

    导出GIT日志到文件

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

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

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

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

    批量git cherry-pick

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

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

    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 <分支名> -- <文件路径>
    
    • 1

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

    强行更新submodules

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

    git submodule update --init --recursive -f
    
    • 1

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

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

    gitk <分支/tag/commit> <文件路径>
    
    • 1
  • 相关阅读:
    Win 10: vscode latex环境配置
    021-Java对象类型转换,instanceof语句使用方法
    如何实现全链路日志?
    神经网络初级入门总结
    各种获取JVM DUMP的方法
    IP地址与代理ip在网络安全中的关键作用
    Vue2-replace属性、编程式路由导航、缓存路由组件、两个新的生命周期钩子、路由守卫、路由器工作模式
    turn.js 模版简单使用
    django 批量 serializers listserializers
    nginx负载均衡
  • 原文地址:https://blog.csdn.net/Ahxing1985/article/details/132795802