相关疑难解决方法(0)

在unix/linux shell中进行模式匹配时,如何使用反向或负向通配符?

假设我想复制目录的内容,不包括名称中包含"音乐"一词的文件和文件夹.

cp [exclude-matches] *Music* /target_directory
Run Code Online (Sandbox Code Playgroud)

什么应该代替[exclude-matches]来实现这个目标?

bash shell glob pattern-matching

317
推荐指数
8
解决办法
17万
查看次数

在git log中使用路径通配符

我的git树中有一个文件:

$ git ls-files | grep /Expression.java
sm/src/main/java/cl/utilities/sm/Expression.java
Run Code Online (Sandbox Code Playgroud)

我想得到它的活动日志,而不必输入整个路径.基本上我想要这个输出:

$ git log --oneline -2 sm/src/main/java/cl/utilities/sm/Expression.java
2718cdc cleaned up some warnings
f30cf15 Added missing @Overrides
Run Code Online (Sandbox Code Playgroud)

......但无需打字sm/src/main/java/cl/utilities/sm.我尝试了很多东西,但没有一个有效:

$ git log -- \*/Expression.java
$ git log -- \*Expression.java
$ git log -- \*\*/Expression.java
$ git log -- '*/Expression.java'
$ git log -- '**/Expression.java'
Run Code Online (Sandbox Code Playgroud)

git wildcard git-log

9
推荐指数
1
解决办法
2644
查看次数

git add'*.txt'和git add*.txt有什么区别?

我只是在代码学校处理git课程https://try.github.io/levels/1/challenges/1,并被git add'*.txt'和git add*.txt的不同行为搞糊涂了.

没有引用的字符串没有添加所有内容.git rm也一样.为什么这样工作?或者只是网络版本?

git github

5
推荐指数
1
解决办法
367
查看次数

列表提交不涉及特定路径

我需要列出触及源树中的一个路径而不是另一个路径的提交。

D-头

C - 触摸foobar

B - 触碰foo

A - 基线

在 A 和 DI 之间想要一个所有涉及文件夹foo 的 提交列表,除非他们也接触文件夹bar,换句话说,在上面的例子中,我希望看到 B 而不是 C。

我试过了,git rev-list A..D --exclude='bar' -- foo但这仍然给了我 B 和 C。

请指教。

git

5
推荐指数
1
解决办法
410
查看次数

如何排除"git diff-index"中的文件

我正在使用git pre-commit钩子来检查提交.预提交脚本基本上做了一件事:

exec git diff-index --check --cached HEAD --
Run Code Online (Sandbox Code Playgroud)

它也做了一些其他的事情,但它们与这个讨论无关.

问题是,我在存储库中有各种各样的文件,并不是所有文件都必须遵守" git diff-index --check" 强制执行的检查.

所以我的问题是:如何排除/忽略这些文件?也就是说,我确实在git中跟踪它们,但我想在预提交检查中忽略它们.

例如,某个补丁包含*.c,*.h,*ini和*.xyz文件.我希望" git diff-index --check"仅适用于.c和.h文件.

git

4
推荐指数
1
解决办法
931
查看次数

标签 统计

git ×4

bash ×1

git-log ×1

github ×1

glob ×1

pattern-matching ×1

shell ×1

wildcard ×1