我有一些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