如果我在本地有未提交的更改,我希望有一种方法可以返回“未知”作为我的git版本。如果没有,它将返回正确的git版本。
String getGitRevision() {
String gitRevision = "unknown"
try {
def cmd = "git rev-parse HEAD"
def proc = cmd.execute()
gitRevision = proc.text.trim()
}
catch (IOException ioe) {
println "Fetch revision failed."
}
return gitRevision;
}
我希望当我在本地进行未提交的更改时,getGitRevision()返回未知。
但是,即使我有未提交的更改,它也会获取正确的修订版ID。我不确定如何在其中添加逻辑。
答案 0 :(得分:1)
[{
"date": "2016-03-22 00:00:00",
"symbol": "ACN",
"open": "121.029999",
"close": "121.470001",
"low": "120.720001",
"high": "122.910004",
"volume": "711400.0"
},
{
"date": "2016-03-22 00:00:00",
"symbol": "ACN",
"open": "121.029999",
"close": "121.470001",
"low": "120.720001",
"high": "122.910004",
"volume": "711400.0"
}
]
就可以作为提交进行解析,并且几乎总是有当前提交。 “未提交的更改”与是否有当前提交无关。
要比较索引和工作树与当前提交,请使用HEAD
。为了可靠地执行此操作,请在您自己的软件中考虑使用git status
,也可能同时使用git --no-optional-locks status --porcelain=v2
,并读取其输出,如the git status
documentation所示。然后,您的代码可以选择要考虑的“未提交的更改”(包括未跟踪的文件,如果添加了-z
,则可以忽略的文件)。
对于这种特殊情况,您可以仅使用--ignored
并检查后缀git describe --always --dirty
。或者-由于-dirty
本身就是这样做的-运行git describe
并检查其退出状态:0表示“不脏”,1表示“脏”,其他表示“无法分辨,出了点问题” ”。使用git diff-index --quiet HEAD
的方法是最灵活的方法,因为它可以让 you 定义 you 的“脏”意思,而其他两个要简单得多。>