2
A
回答
2
这是一个黑客位,但你可以做到这一点
git diff banch --name-status | grep -v this/path
不完全混帐,但做这项工作
0
你可以你不关心的路径添加到您的.gitignore文件。
编辑:您可以使用git diff files/you/care/about
看你感兴趣的diff文件
例如,如果git status
表明一堆文件被更改:
modified: foo/bar
modified: foo/baz
modified: some/more/stuff
modified: and/some/more
可以使用git diff foo
只查看foo
目录中的更改或git diff some/more/stuff and/some/more
查看除foo
之外的所有内容。
如果您想查看几个文件的差异,这将会很好,但如果您想要查看除之外的所有文件(如一个或两个文件),则效果不佳。我不认为有办法告诉git diff
使用否定您指定的文件。
另一种方法是使用git add --interactive
,但是对于你正在做的事情可能有点麻烦。
它也证明,.gitignore
不会忽略已经在版本控制下的文件,所以这个想法永远不会工作。忘记我提到它。 :(
1
正如他们说的〜在这里:。Exclude a directory from git diff,你可以使用这样的事情:
git diff --name-only $branch_name | grep -v -E "$excluding" | xargs git diff $branch_name --
...其中branch_name
是其他分支和excluding
是你想排除的格局我不知道混帐二ff最终会提供一个类似的参数,并且我在git文档中没有找到这样的选项,所以这个命令就是我现在使用的。
唯一需要注意的是,你必须在你的工作目录的顶层(即包含您的git的文件夹相同的文件夹),此命令的工作,因为你的路径中传递给git diff --
最后通过xargs
与此相关。
您可以制作一个脚本,在您喜欢的外壳中为您完成工作,例如
#!/bin/zsh
if [[ $# < 2 ]] ; then
echo "Usage: \n gdx [git-diff-params] branch_name extended_reg_exp\n"
echo "\nExamples:\n gdx development jpg \n gdx --name-only master origin/master jar \n gdx development '[a-zA-Z]+'"
exit 1
fi
excluding="[email protected][-1]"
branch_name="[email protected][-2]"
diff_options="[email protected][1,-3]"
## Get a list of all the paths to include
git_paths=$(git diff --name-only $branch_name | grep -v -E "$excluding")
if [[ ${#git_paths} = 0 ]] ; then
#no diffs
exit 0
else
## Escape special characters
git_paths=(${(f)git_paths})
for i in {1..${#git_paths}}
do
git_path=$git_paths[i]
git_path=\"${git_path//\"/\"}\"
git_paths[i]=$git_path
done
## Run the diff
eval "git diff ${=diff_options} $branch_name -- $git_paths"
fi
这需要参数和打印用法和whatnot。我这样使用它:
gdx HEAD^ "*.jar"
相关问题
- 1. Git分支 - 状态混合?
- 2. git和分支名称
- 3. IntelliJ和Git分支名称
- 4. 同时显示git diff和git状态
- 5. 如何让git diff --ignore-space-change默认
- 6. 没有结帐分支的Git diff
- 7. Jenkins - 管道访问git分支名称
- 8. Git Bash,获取本地分支名称
- 9. 在git中切换分支名称
- 10. 在TFS中使用git分支名称
- 11. 分支的Git diff,不包括其他分支的提交
- 12. 指向同一分支的两个Git分支名称?
- 13. Diff git fork
- 14. 通过分支名称\ id与git api获取git提交
- 15. Git - 致命:分支名称不符合GIT标准
- 16. 如何让git分支名称成为SonarQube项目名称的一部分?
- 17. 如何包括apk文件名的Git分支名称自动
- 18. git - 用部分分支名称扩展commit hook
- 19. 标签名称的CVS分支名称
- 20. 创建git分支,并将原始状态还原为上游状态
- 21. 切换git分支,同时保持当前分支处于冲突状态
- 22. 常量状态名称
- 23. 签出只有分支名称的前几个字符的git分支
- 24. 混帐不问如果我运行git状态切换分支
- 25. Git:删除一个分支并返回到之前的状态
- 26. 在Mac Bash中显示git分支和状态
- 27. 超越比较Diff 2分支
- 28. git分支(没有分支)
- 29. 的grep的Git分支名称,只返回分行名字中含有“主题”
- 30. git diff比较远程和本地分支什么都不做
我只是试图忽略可能与diff命令不同的某些文件。 – 2011-04-22 02:02:13