Existe-t-il un moyen de voir ce qui serait poussé si je faisais une git push
commande?
Ce que j'imagine est quelque chose comme l'onglet "Fichiers modifiés" de la fonction "pull request" de Github. Lorsque j'émets une demande de tirage, je peux regarder et voir ce qui sera tiré s'ils acceptent ma demande de tirage:
La ligne de commande est OK, mais je préférerais une sorte de GUI (comme la capture d'écran ci-dessus).
Réponses:
Pour une liste des fichiers à pousser, exécutez:
exemple:
Pour le code diff des fichiers à pousser, exécutez:
Pour voir les chemins de fichiers complets des fichiers qui vont changer, exécutez:
Si vous voulez voir ces différences dans une interface graphique, vous devrez configurer git pour cela. Voir Comment puis-je afficher la sortie 'git diff' avec un programme de diff visuel? .
la source
HEAD
, pas l'index, contre origin (git diff origin/master HEAD
). La différence d'index donnera les mêmes résultats si et seulement si vous n'avez aucune modification mise en scène pour la validation. Si vous avez des modifications par étapes, elles seront incluses dans le diff, mais ne seront clairement pas poussées car elles n'ont pas encore été validées.git diff --stat origin/master HEAD
est la bonne réponse.git diff --cached [remote/branch]
fait l'affaire :)Il y a toujours un essai à sec:
Il fera tout sauf l'envoi effectif des données.
Si vous voulez une vue plus graphique, vous avez un tas d'options.
Tig et le script gitk fournis avec git affichent tous les deux la branche actuelle de votre copie locale et la branche de la télécommande ou de l'origine.
Ainsi, tous les commits que vous effectuez après l'origine sont les commits qui seront poussés.
Ouvrez gitk à partir du shell dans la branche que vous souhaitez pousser en tapant
gitk&
, puis pour voir la différence entre ce qui est sur la télécommande et ce que vous êtes sur le point de pousser vers la télécommande, sélectionnez votre commit local non poussé et faites un clic droit sur la télécommande et choisissez "Diff this -> selected":la source
git diff --stat HEAD origin/master
ougit diff HEAD origin/master
. Important est le HEAD , sinon vous incluez des changements non validés dans votre diffgit push --dry-run
est qu'il nécessite toujours une autorisation d'écriture sur la télécommande. Donc, si vous avez un clone sans autorisation pour pousser en amont, mais que vous souhaitez voir quelles sont vos modifications locales non poussées,--dry-run
ne le fera pas.branch
etorigin/branch
, j'irais avec la réponse d'Ionuț G. Stan, car cela ne nécessite pas réellement de connexion au référentiel distant. Cela peut être bon ou mauvais, selon vos besoins.Pour lister simplement les commits en attente d'être poussés: ( c'est celui dont vous vous souviendrez )
la source
git cherry -v heroku/remote
au cas où vous conservez votre code dans plus d'une télécommande.Vous voulez probablement courir
git difftool origin/master...
. qui devrait montrer le diff unifié de ce qui se trouve sur votre branche actuelle qui ne l'est pas encore sur la branche origine / master et l'afficher dans l'outil de différenciation graphique de votre choix. Pour être le plus à jour, lancez d'git fetch
abord.la source
git difftool -d origin/master
, J'ai mon outil difft réglé pour fusionner donc ça marche très bien, merci!git difftool -d
c'est bien mieux, merci Aquarius Power. Le seul problème est qu'il ne détecte pas les fichiers déplacés et les affiche comme supprimés et ajoutés à la place.Une façon de comparer votre version locale avant de la pousser sur le repo distant (sorte de push en dry-run):
Utiliser TortoiseGit:
Faites un clic droit sur le projet de dossier racine> TortoiseGit> Diff avec la version précédente>
pour la version 2 choisissez
refs/remotes/origin/master
la source
Essayez
git diff origin/master..master
(en supposant queorigin/master
c'est votre amont). Contrairement àgit push --dry-run
cela, cela fonctionne toujours même si vous n'avez pas de permission d'écriture en amont.la source
Utilisez
git gui
, là vous pouvez voir une liste de ce qui a changé dans votre commit réel. Vous pouvez également utilisergitk
une interface simple pour les reflogs. Il suffit de comparerremotes/...
etmaster
de voir ce qui sera poussé. Il fournit une interface similaire à votre capture d'écran.Les deux programmes sont inclus dans git.
la source
gitk --all
vous obtenez une liste complète de tous les commentaires. Vous pouvez maintenant comparer l'état réel de votre branche de développement avec votre télécommande à pousser.Pour voir quels fichiers sont modifiés et afficher les changements de code réels par rapport à la
master
branche que vous pouvez utiliser:REMARQUE : Si vous utilisez l'un des IDE Intellij, vous pouvez cliquer avec le bouton droit sur votre projet de niveau supérieur, sélectionner Git > Comparer avec la branche > et choisir l'origine souhaitée, par exemple
origin/master
. Dans l'arborescence de fichiers qui apparaît, vous pouvez double-cliquer sur les fichiers pour voir un diff visuel. Contrairement à l'option de ligne de commande ci-dessus, vous pouvez modifier vos versions locales à partir de la fenêtre diff.la source
Vous pouvez lister les commits par:
Et puis comparez avec la commande suivante où le nombre de ^ est égal au nombre de validations (dans l'exemple ses 2 validations):
la source
Si vous utilisez Mac OS X, je vous recommanderais de vous procurer Tower, c'est un merveilleux programme qui a fait de Git un plaisir pour moi. Je dois maintenant plus me souvenir des commandes du terminal et il offre une excellente interface graphique pour afficher, suivre et résoudre les différences dans les fichiers.
Et non, je ne suis pas affilié avec eux, j'utilise simplement leur logiciel et j'aime vraiment ça.
http://www.git-tower.com/
la source
Juste pour ajouter mes deux cents ... Je voulais implémenter cela lors de l'exécution de travaux dans un pipeline gitlab sur un runner gitlab. La meilleure façon de le faire était d'utiliser ce script:
Dans mon cas également, je voulais filtrer les fichiers par extension, pour y parvenir j'ai utilisé:
Après cela, vous pouvez par exemple transmettre cette liste ailleurs, un linter peut-être;)
J'espère que cela aidera quelqu'un.
la source
la source
Après
git commit -m "{your commit message}"
, vous obtiendrez un hachage de validation avant le push. Ainsi, vous pouvez voir avec quoi vous allez poussergit
en exécutant la commande suivante:par exemple:
git diff origin/master c0e06d2
la source