我已經爲我的應用程序一起更新了更新程序,以便具有很少或沒有編碼技能的人員可以在自己的計算機上安裝,運行和更新應用程序。爲什麼我不應該使用這個瓷器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