2009-10-31 7 views
10

Je veux voir une liste de tous les changements que le prochain push ferait. git status semble savoir que j'ai fait des commits locaux ... comment est-ce que je l'ai me montrer ce que ce sont? Ce que je fais quelque chose comme ceci:git: comment voir les changements la prochaine poussée enverra

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

D'accord, il dit Validations. Alors je le fais

% 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 

Existe-t-il une façon plus concise de le faire? Je suis habitué à svn où "svn diff" ferait essentiellement ceci, parce qu'il n'y a pas de notion de staged/unstaged.

Répondre

10
git diff --name-status origin/master 

Notez que vous pouvez également définir un alias dans votre fichier de configuration git, comme le "Newmaster" un:

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

Une fois cela fait, vous pouvez utiliser

git newmaster 

pour obtenir ce que vous voulez.

+0

Merci. Je pense que j'avais des problèmes de syntaxe avec ça. Je faisais origin.master et master d'origine, mais pas /. Et il semblerait que je ferais un git fetch d'origine pour que tout soit prêt pour ce différé? – Trenton

+1

Vous pouvez également faire un git fetch d'abord, au cas où votre copie locale d'origine/master est obsolète. – Neall

1

N'est-ce pas ce que 'git cherry' est pour?

J'ai un alias shell de la pression?:

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

Cela ne vous donne pas les modifications exactes apportées, mais votre bon commits devraient vous dire assez.

0

Cette liste toutes les commits qui existent dans votre branche, mais pas d'origine/maître

origine git log/maître ..

Questions connexes