7
votes

Comment savoir quels fichiers sur le référentiel à distance ont changé depuis le dernier tirage de git?

J'essaie de pousser du code à l'aide de $ GIT Push Origin Master mais je reçois l'erreur xxx

quand j'ai fait $ git fetch origine origine maître alors $ git diff d'origine / maître J'ai une liste de tous les fichiers et modifications qui étaient différents entre les deux repos. Cependant, je ne suis intéressé que dans la liste des fichiers qui ont changé entre le référentiel distant et la dernière fois que j'ai fait un maître d'origine $ git (code> sur ma zone locale.

Y a-t-il une façon de le faire?

git

0 commentaires

3 Réponses :


3
votes
git diff --stat master origin/master

1 commentaires

Cela compare en fait votre commit actuel ( maître ) par rapport à la leur ( origine / maître ), ce qui n'est pas assez la même chose.



7
votes

git tire est identique à celui de git gitch suivi de git fusion (ou git rebase ). < p> git fetch montre qui refit le cas échéant. Cela montrera quelque chose comme: xxx

Cela signifie la dernière fois que vous avez récupéré Master, il était à A8E5E4E maintenant, il est à 295BF31. Vous pouvez voir les fichiers modifiés avec quelque chose comme: xxx

mais peut-être encore plus intéressant est la sortie de gitk maître ... Origine / Master Après la récupération. De cette façon, vous pouvez inspecter à la fois les changements de votre côté et les changements de côté d'origine.


1 commentaires

J'ai constaté qu'avec l'état-name, j'ai également eu besoin non d'indiquer uniquement les noms de fichiers et non les différences.



5
votes

Réponse de Michas est la bonne pour la question de la question.

Et si vous n'avez pas L'ancien ref, c'est-à-dire le A8E5E4E CODE> partie de A8E5E4E..295BF31 Master -> Origine / Master Code>? Probablement vous ne vous souciez pas réellement: comme il l'a suggéré, en regardant maître ... Origine / Master Code> peut être encore plus intéressant. 1 sup> Mais, que ce soit-il ... code> syntaxe signifie em>? p>

La réponse est dans le GIT REV-LIST code> Documentation: P>

Une autre notation spéciale est ... code> qui est utile pour fusionne. Le jeu de commits résultant est la différence symétrique entre les deux opérandes. ... p> blockquote>

que je suppose confondre assez de formulation (et git diff code> utilise une signification assez différente). Mais vraiment, ce n'est pas si compliqué. P>

donné que certains commits pouvaient être dessinés comme ceci: p> xxx pré>

Ce que vous avez est une divergence à valider C code>. Vous avez commencé à travailler lorsque maître code> et Origine / Master Code> tant pointé sur C code>. Clairement, vous avez commis d code> et E code> et "ils" (qui ils sont) engagés f code> et g code>. Commettre C code>, à la manière, est appelé la base fusion em>. P>

Que maître ... Origine / Master Code> signifie est: trouvez-moi c code>, puis donnez-moi tout "à partir de là", sur les côtés gauche et droit. C'est-à-dire que tous les commits sur les deux maître code> et em> Origine / Master CODE>, en excluant tous les engagements à et en dessous du point où ils se rencontrent. p>

Si vous exécutez Gitk Master ... Origine / Master Code> Vous verrez que: 2 sup> Tous les commits vous em > Fait et tous les commits ils sont fabriqués. Mais si vous exécutez git diff drapeaux em> maître ... Origine / maître code>, git diff code> jette la majeure partie de cela. Au lieu de cela, il trouve la base de fusion c code>, 3 sup> et diffère que par rapport au nom de latérale droite. P>

supposant que vous êtes sur votre Master code> branche (c.-à-d. Tête Code> signifie simplement "Master" de toute façon), vous pouvez la raccourcir encore plus loin. Pour voir quels fichiers ils ont modifié depuis votre et leurs branches divergèrent, il suffit d'exécuter: p> xxx pré>

laissant le nom désactivé signifie tête code>, donc c'est le même Comme tête ... Origine / maître code> identique à maître ... Origine / maître code>. p>

Si votre git est assez nouveau, @ {u} code> fait référence à "la branche en amont de la branche actuelle" (ie, de maître code>, recherche origine / maître code>), vous pouvez donc exécuter: P>

$ git log --graph --boundary ...origin/master


0 commentaires