我目前在markdown文件中保存我的笔记,但是如果打开现有文件,我使用的编辑器(marktext)会添加新的空行。
git跟踪了此新行的添加,并且git不断向我显示这些文件为修改后的文件。有没有一种方法可以配置git在执行git status
时不跟踪这些变化,例如换行和尾随空格?因为当我对这些特定文件执行git diff --ignore-all-space --ignore-blank-lines <path-to-file>
时,它根本没有显示任何更改。
谢谢。
答案 0 :(得分:2)
我不知道如何配置git以执行您想要的操作。也许这是不可能的(但我敢肯定人们会证明我错了)。但是至少您可以稍微修改一下,然后拥有所需的内容。
您可以创建一个小脚本来检查git diff --ignore-all-space --ignore-blank-lines
是否不返回任何内容或什么,然后输出标准nothing to commit, working tree clean
字符串或执行实际的git status
。
#!/bin/bash
diff=$(git diff --ignore-blank-lines --ignore-all-space)
if [[ -z $diff ]];
then
echo -e "On branch $(git branch --show-current)\nnothing to commit, working tree clean"
else
git status
fi
然后,如果将其放在全局/本地.gitconfig
# git config stuff
[alias]
nw-status = "!p() { bash ~/path/to/script/git-nw-status.sh ; }; p"
注意,这并不是您想要的。如果您确实有非空白非换行符的更改,那么您将看到git status
,但是通过与git diff
进行检查,您还必须使用其他命令来忽略空白和换行符。这可能给您带来不便。
答案 1 :(得分:1)
您可以设置clean content filter driver as here,它将自动删除git diff
/ git commit
上那些尾随的空行。
“ Keyword Expansion”中“ ProGit book”部分的图片
干净的脚本会trim any trailing empty lines
# Delete all trailing blank lines at end of file (only).
sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' file