我如何检查我的git存储库中是否有任何未提交的更改:
添加到索引但未提交的更改 无路径的文件
从一个脚本?
git-status在git 1.6.4.2版本中似乎总是返回0。
我如何检查我的git存储库中是否有任何未提交的更改:
添加到索引但未提交的更改 无路径的文件
从一个脚本?
git-status在git 1.6.4.2版本中似乎总是返回0。
当前回答
为什么不封装'git状态与一个脚本:
将分析该命令的输出 是否会根据需要返回适当的错误代码
这样,您就可以在脚本中使用“增强”状态。
正如0xfe在他的精彩回答中提到的,git状态—瓷器在任何基于脚本的解决方案中都是重要的
--porcelain
为脚本提供稳定、易于解析的输出格式。 目前这与——short输出相同,但保证将来不会更改,因此对脚本是安全的。
其他回答
为什么不封装'git状态与一个脚本:
将分析该命令的输出 是否会根据需要返回适当的错误代码
这样,您就可以在脚本中使用“增强”状态。
正如0xfe在他的精彩回答中提到的,git状态—瓷器在任何基于脚本的解决方案中都是重要的
--porcelain
为脚本提供稳定、易于解析的输出格式。 目前这与——short输出相同,但保证将来不会更改,因此对脚本是安全的。
你也可以
git describe --dirty
. 如果它检测到一个肮脏的工作树,它将在结尾附加单词“-dirty”。根据git-describe(1):
--dirty[=<mark>]
Describe the working tree. It means describe HEAD and appends <mark> (-dirty by default) if
the working tree is dirty.
. 注意:未跟踪的文件不被认为是“脏文件”,因为,正如manpage声明的那样,它只关心工作树。
好时机!几天前我写了一篇关于这方面的博客文章,当时我想出了如何在提示符中添加git状态信息。
我是这么做的:
对于脏状态: 如果当前git分支是脏的,则返回“*”。 函数evil_git_dirty { [[$ (git diff, shortstat 2 > / dev / null |尾巴n1 ) != "" ]] && 回声“*” } 对于未跟踪的文件(请注意git状态的——porcelain标志,它会为您提供良好的可解析输出): 返回未跟踪文件的数量 函数evil_git_num_untracked_files { Expr ' git status——porcelain 2>/dev/null| grep "^??"| wc -l ' }
虽然git diff——shortstat更方便,但你也可以使用git status——porcelain来获取脏文件:
# Get number of files added to the index (but uncommitted)
expr $(git status --porcelain 2>/dev/null| grep "^M" | wc -l)
# Get number of files that are uncommitted and not added
expr $(git status --porcelain 2>/dev/null| grep "^ M" | wc -l)
# Get number of total uncommited files
expr $(git status --porcelain 2>/dev/null| egrep "^(M| M)" | wc -l)
注意:2>/dev/null会过滤掉错误消息,所以你可以在非git目录上使用这些命令。(它们将简单地为文件计数返回0。)
编辑:
以下是这些帖子:
在终端提示中添加Git状态信息
改进了启用git的Shell提示符
一个DIY的可能性,更新遵循0xfe的建议
#!/bin/sh
exit $(git status --porcelain | wc -l)
正如Chris Johnsen所指出的,这只适用于Git 1.7.0或更新版本。
看了一下这些答案…(在*nix和windows上有各种问题,这是我的要求)…发现以下方法效果很好…
git diff --no-ext-diff --quiet --exit-code
检查*nix中的退出代码
echo $?
#returns 1 if the repo has changes (0 if clean)
查看窗口$中的退出代码
echo %errorlevel%
#returns 1 if the repos has changes (0 if clean)
来源:https://github.com/sindresorhus/pure/issues/115 感谢@paulirish的分享