Git: как увидеть изменения, которые отправит следующий push

Я хочу увидеть список всех изменений, которые будет делать следующий push. git status, похоже, знает, что я сделал локальные коммиты... как мне это показать, что это такое? То, что я делаю, выглядит примерно так:

% git status
# On branch master
# Your branch is ahead of 'origin/master' by 7 commits.
...

Хорошо, он сказал, что 7 совершает. Итак, я делаю

% git diff --name-status HEAD~7
M       bin/bench
M       scala/001/02.scala
M       scala/007/01.scala
A       scala/010/01.scala
A       scala/016/01.scala
A       scala/020/01.scala

Есть ли более сжатый способ сделать это? Я привык к svn, где "svn diff" будет по существу делать это, потому что нет понятия поэтапного/нестационарного.

Ответ 1

git diff --name-status origin/master

Обратите внимание, что вы также можете определить псевдоним в конфигурационном файле git, например, "newmaster":

git config alias.newmaster "diff --name-status origin/master"

Как только это будет сделано, вы можете использовать

git newmaster

чтобы получить то, что вы хотите.

Ответ 2

Разве это не то, что "git вишня"?

У меня есть псевдоним оболочки "push?":

$ type push? 
push? is aliased to `git cherry -v origin/master'

Это не дает вам точных изменений, но ваши хорошие сообщения о фиксации должны сообщать вам достаточно.

Ответ 3

Здесь перечислены все коммиты, которые существуют в вашей ветке, но не в исходном/главном

git log origin/master..