是否有一个命令可以运行以检查是否有任何提交要推送到origin / master?
git [some command] origin master
输出如下内容:
origin/master is behind by 7 commits
答案 0 :(得分:8)
以下两种方法可列出您拥有的“额外”提交,这些提交不在origin / master上:
git log --oneline origin/master..HEAD
git rev-list --oneline ^origin/master HEAD
--oneline
只是以较短的格式列出它们。此外,如果你的分支跟踪起源/主人,一个简单的git status
将显示你。
答案 1 :(得分:3)
git diff --stat master origin/master
示例输出:
classes/Mammoth/Article.php | 12 ++++++++++--
classes/Mammoth/Article/Admin/Section/Controller.php | 34 +++++++++++++++++-----------------
classes/Mammoth/Article/Filter.php | 14 +++++++-------
classes/Mammoth/Article/Section.php | 18 ++++++++++--------
classes/Mammoth/Article/Section/IMySQL.php | 2 +-
migrations/20130411111424_ChangeNameToURIOnSectionsTable.php | 14 --------------
migrations/sql/up/20130411111424_ChangeNameToURIOnSectionsTable.sql | 5 -----
solr-core/conf/schema.xml | 2 +-
views/admin/section/form.php | 8 ++++----
views/admin/section/view.php | 10 +++++-----
10 files changed, 55 insertions(+), 64 deletions(-)
答案 2 :(得分:3)
如果你对你的提取是最新的(这里所有其他答案都是假定的)
$ git checkout
Your branch is ahead of 'origin/master' by 9 commits.
(use "git push" to publish your local commits)
要获取所有分支的信息,
$ git branch -avvv
答案 3 :(得分:0)
我第一次尝试解决这个问题是这样的:
git push --all -n 2>&1 | grep -q 'Everything up-to-date' ||
echo "Outstanding commits to be pushed at $PWD"
它并不健全,因为它会声称存在未完成的错误提交。最大的问题是它会询问用户名/密码,即如果尝试使用https-link推送到github仓库(通常是因为我在某些仓库上进行了RO检查,我不应该直接推送更改)。
jtill的答案似乎最适合我,因为它包含有关如何检查所有分支的说明。因此,我的第二次尝试看起来像这样:
git branch -avvv 2>&1 | grep -q ': ahead ' &&
echo "Outstanding commits to be pushed at $PWD"
但是,这也有至少一个警告 - 如果提交消息包含字符串':提前'将会出现误报。
那么我有这个命令用于"检查所有git回购的状态":
for gitrepo in $(find ~ -name '.git')
do
cd $(dirname $gitrepo)
git fetch >/dev/null 2>&1 ||
echo "Git fetch failed at $PWD"
git branch -avvv 2>&1 | grep -q ': ahead ' &&
echo "Outstanding commits to be pushed at $PWD"
done
: - )