我已经为我的应用程序一起更新了更新程序,以便具有很少或没有编码技能的人员可以在自己的计算机上安装,运行和更新应用程序。为什么我不应该使用这个瓷器Git命令来判断我的回购是否有任何变化?
下面是一个更新的例子,对于Windows命令提示符写:
@echo off
for /f %%i in ('call git status --porcelain') do set stash=%%i
if not [%stash%] == [] (
echo Stashing local changes...
call git add .
call git stash -q
)
echo Updating App...
call git pull origin master
if not [%stash%] == [] (
echo Restoring local changes...
call git stash apply -q
)
echo Updating Dependencies...
call npm update
echo Done
pause
正如你所看到的,我打电话git status --porcelain
告诉应用程序是否有需要被藏匿的局部变化在拉远程主分支之前。
此命令将返回什么如果工作目录是干净的,但总是会返回东西如果有局部变化,跟踪或以其他方式。
我从其他SO帖子看到,使用瓷器命令在git中进行管道工作是不好的,但在这种情况下,它对我来说效果很好,而且我也不明白为什么git status --porcelain
命令会永远当有一个干净的工作目录时,返回东西。
所以我的问题是:在这个特定的用例中使用瓷器是错误的吗?如果是这样,为什么?
奖励:有什么更好的方法来解决这个问题?
这很有启发。我仍然困惑,为什么他们开关' - 瓷器',当它的意图是在这个更加管道导向的情况下使用。 – Bango
@Bango,很多git命令都有'--porcelain'开关,只是为了说明使用这个开关时它们提供了稳定的输出。 – Opal