相关疑难解决方法(0)

使'git log'忽略某些路径的更改

git log除了我指定的文件外,我怎么才能只显示改变文件的提交?

有了git log,我可以将我看到的提交过滤给那些触及给定路径的人.我想要的是反转该过滤器,以便只列出除指定的触摸路径以外的触摸路径.

我可以得到我想要的东西

git log --format="%n/%n%H" --name-only | ~/filter-log.pl | git log --stdin --no-walk
Run Code Online (Sandbox Code Playgroud)

在哪里filter-log.pl:

#!/usr/bin/perl
use strict;
use warnings;

$/ = "\n/\n";
<>;

while (<>) {
    my ($commit, @files) = split /\n/, $_;

    if (grep { $_ && $_ !~ m[^(/$|.etckeeper$|lvm/(archive|backup)/)] } @files) {
        print "$commit\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

除了我想要比这更优雅的东西.

请注意,我不是在问如何让git忽略这些文件.跟踪和提交这些文件.就是这样,大多数时候,我对看到它们并不感兴趣.

相关问题:如何反转`git log --grep = <pattern>`或如何显示与模式不匹配的git日志除了提交消息而不是路径之外,它是同一个问题.

关于这个主题的论坛讨论从2008年开始:Re:从git-diff中排除文件这看起来很有希望,但线程似乎已经枯竭了.

git

108
推荐指数
2
解决办法
2万
查看次数

如何忽略 git diff --no-index 上的目录?

我正在尝试在同一个存储库中的两个文件夹之间创建一个彩色差异(这可能是完全错误的方法)。

我相信实现这一目标的一种方法是通过git diff --no-index folder1 folder2它会自动为您创建一个补丁(酷)。

然而,差异也包括(正如人们所期望的)所有的.gitignore'd 文件。

folder1
  node_modules
  src/
  .gitignore
  package.json
  README.md

folder2
  node_modules
  src/
  .gitignore
  package.json
  README.md
Run Code Online (Sandbox Code Playgroud)

我想无视node_modules

可能性?备择方案?

git git-diff

11
推荐指数
1
解决办法
1450
查看次数

如何从 git diff --no-index 中排除文件和目录

如何从 中排除文件和目录git diff --no-index

例如,我想显示两个目录project1&之间的差异,project2同时忽略它们的顶级.git目录 ( project1/.git& project2/.git) 及其所有.DS_Store文件。

git diff git-diff

6
推荐指数
1
解决办法
806
查看次数

标签 统计

git ×3

git-diff ×2

diff ×1