相关疑难解决方法(0)

如何以编程方式确定是否存在未提交的更改?

在Makefile中,如果存在未提交的更改(在工作树或索引中),我想执行某些操作.什么是最干净,最有效的方法?退出的命令在一种情况下返回值为零而在另一种情况下为非零符合我的目的.

我可以运行git status并输出输出grep,但我觉得必须有更好的方法.

git

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

如何检查当前分支中是否没有提交?

目标是获得可以在shell命令中评估的明确状态.

我试过git status但它总是返回0,即使有提交的项目.

git status
echo $?  #this is always 0
Run Code Online (Sandbox Code Playgroud)

我有一个想法,但我认为这是一个坏主意.

if [ git status | grep -i -c "[a-z]"> 2 ];
then
 code for change...
else
  code for nothing change...
fi
Run Code Online (Sandbox Code Playgroud)

任何其他方式?


通过以下解决更新,请参阅Mark Longair的帖子

我尝试了这个,但它导致了一个问题.

if [ -z $(git status --porcelain) ];
then
    echo "IT IS CLEAN"
else
    echo "PLEASE COMMIT YOUR CHANGE FIRST!!!"
    echo git status
fi
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 [: ??: binary operator expected

现在,我正在看那个男人并尝试git diff.

===================代码为我的希望,希望更好的答案======================

#if [ `git status | grep -i -c "$"` …
Run Code Online (Sandbox Code Playgroud)

git git-status

166
推荐指数
8
解决办法
6万
查看次数

为什么测试"$?" 一个反模式,看一个命令是否成功?

在这里看到测试是否$?是零(成功)或其他东西(失败)是反模式,但我无法在其他任何地方找到它.

坚持维基百科反模式的定义:"反模式(或反模式)是对反复出现的问题的常见反应,这种反复出现的问题通常是无效的,并且可能会产生极大的反作用." 为什么这会是反模式?

bash shell sh

8
推荐指数
1
解决办法
476
查看次数

标签 统计

git ×2

bash ×1

git-status ×1

sh ×1

shell ×1