我有一些shell腳本,我想檢查我的一個git回購。我想 知道這個回購是否有一切承諾,如果它推到掌握。 在此測試之前,我做了git fetch以確保我有最新的更改。檢查本地git回購已承諾並推送到主
我已經找到了方法來檢查,如果回購有一些未提交的更改:
if ! git --work-tree=$HOME/git/project --git-dir=$HOME/git/project/.git diff-index --quiet HEAD --; then
echo "Has some changes";
fi
但這並不是我唯一需要的。我也想確保我的所有 本地提交被推送給主。
最簡單的方法是什麼?
Mark Longair和你的解決方案似乎錯過了未跟蹤的文件。所以根據你的目的,目錄可能仍然被認爲是髒的。 – 2013-10-02 04:06:35
@ vlad-didenko也許我不會不喜歡你,但我的解決方案顯示未跟蹤的文件。屏幕截圖:http://upload.bessarabov.ru/bessarabov/LbYgP0Daba-oJ5vCDa8Wag8a5H8.png使其成爲代碼:https://metacpan.org/source/BESSARABV/App-IsGitSynced-1.0.0/bin/is_git_synced# L84 – bessarabov 2013-10-02 15:21:12
是的,我相信這是我不夠清楚。 「git diff --exit-code && git diff --cached --exit-code」命令不會捕獲未跟蹤的文件。你的解決方案是一個很大的(相對)腳本,它幾乎不是上述「最簡單的方法」問題的答案 - 這個問題顯然需要一些簡單的命令。作爲通過搜索來到這裏的人,我沒有看到答案 - 因爲通過相當多的perl腳本不是一個(好的)答案。可能是在那裏,但不在這裏:) – 2013-10-03 01:44:29