c - git diff 查找 c 中的重构名称更改

标签 c git refactoring

最近,如果您的 C 代码发生在我们的代码库上,则进行了一次大型重构。我想使用 git 列出已更改的结构/函数调用名称的快速列表。下面是我是如何做到这一点的。

最佳答案

  1. 使用 git 查找整个单词的差异,而不是行差异

    git diff dev --word-diff-regex="([a-zA-Z0-9_]+)"
    
  2. 通过 sed 进行管道传输以查找清理输出。 你会得到类似的输出

    [-旧名称-]{+新名称+}

  3. 构建正则表达式以输出 OldName NewName

    sed -n "s/.*\[-\([a-zA-Z_]*\)-\]{+\([a-zA-Z_0-9]*\)+}.*/\1 \2/p"
    
  4. 将其与 uniq 结合起来,并对更改名称的初始列表进行排序。

    git diff dev --word-diff-regex="([a-zA-Z0-9_]+)" | \\  
    sed -n "s/.*\[-\([a-zA-Z_]*\)-\]{+\([a-zA-Z_0-9]*\)+}.*/\1 \2/p" | \\  
    sort | \\  
    uniq
    

关于c - git diff 查找 c 中的重构名称更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355191/

相关文章:

java - 接口(interface)、泛型和重构

Git:需要跨分支版本号

.net - 清理代码并进行重构。额外的局部变量

c++ - 将应用程序链接到 libbz2.so.1 而不是 libbz2.so.1.0

无法分配请求的地址 - 可能的原因?

windows - 无法使用来自 jenkins 的 git 从 tomcat 安装连接到 bitbucket

git-stash 更改而不恢复

eclipse - 可以比较文件子部分的差异工具

c - 检查 fgetc() 的 EOF 和错误的更好方法是什么?

c - 指向结构的指针成员