我正在尝试为我的bash提示符构建一个可靠的“存储库前后”的信号。尽管阅读了许多Git提示符(Shell、Python脚本)的源代码以及阅读了许多堆栈溢出答案,但我仍然无法弄清楚为什么比较
$ git rev-list HEAD..origin/master
我实际上没有比对原始数据。经过推理,我决定提出这个问题并回答它,以便不被埋没,并能够立即回答其他人类似的问题。
我终于明白了,origin/master只是一个本地“指针”,这在Git的分布式特性下很有意义。当我想起这一点时,我真的感到很困惑。几乎没有关于比较本地和远程仓库的答案直接说明必须执行fetch。最后在这里找到了一个答案。无论如何,我已经成功地使用parrt的git bash提示符。要确定你的仓库是否落后于origin,请执行以下操作:
$ git fetch origin mybranch
$ git rev-list HEAD..origin/mybranch
这很昂贵,所以我的bash提示脚本每30分钟执行一次,以查看我是否落后于远程仓库。