git diff ne se montre pas assez
je veux voir la différence entre la branche master et ma branche. J'ai beaucoup de tire par le maître de ma branche et pour voir les changements qui pourraient être ajoutés si j'ai fusionné mon long dans le maître.
C'est ma situation:
-*--*--*-----*<master>
1--*--*--*--2--*<feature>
mon problème est le git diff master feature
semble n'afficher que le numéro 2. Je veux voir la différence qu'une demande GitHub pull montrerait, qui je crois est tout le chemin pour commettre 1.
J'ai remarqué que git cherry
me montre les propagations pour lesquelles je veux voir la différence.
Merci pour tout conseil.
3 réponses
la chose importante à réaliser au sujet de git diff A B
est qu'il ne vous montre jamais la différence entre les états de l'arbre entre exactement deux points dans le graphe de commit - il ne se soucie pas de l'histoire. Les notations ..
et ...
utilisées pour git diff
ont la signification suivante:
donc quand vous lancez git diff master feature
ce n'est pas seulement vous montrer le changement introduit par le commit que vous avez marquées comme 2
- la sortie doit afficher les différences exactes entre l'état de l'arbre engagé dans master
, et l'état de l'arbre engagé dans feature
. Si cela ne vous montre pas les changements antérieurs sur votre branche de fonctionnalité, peut-être avez-vous résolu les conflits à partir des fusions antérieures de master en faveur de la version dans master
?
Comme cebewee dit il se peut que ce que vous voulez, c'est git log -p master..feature
, depuis git log
ne se soucient de l'histoire. La signification de ..
et ...
pour git log
est différente car ils sélectionnent une gamme de commits:
soit dit en passant, il est souvent dit que fusionner de master
dans une branche de sujet est la mauvaise chose à faire - à la place, vous devriez rebaser, ou fusionner votre branche de sujet dans master
après qu'il est terminé. Ce garde le sens du sujet branche facilement compris. Le responsable de git a fait un (assez difficile à comprendre) blog sur la philosophie de la fusion qui discute de cela.
git diff master feature
ne montre aucune des commits' mais la différence textuelle entre le Master commits et la fonctionnalité. Il semble que vous voulez voir tous les commits de feature, qui ne sont pas encore en master? Dans ce cas , essayez git log master..feature
ou git log -p master..feature
, si vous voulez voir les diffs, aussi.
voir la section spécifiant les fourchettes dans man git-rev-parse
pour une explication du" A..b' la syntaxe.
je suis relativement nouveau à git, mais si je comprends bien votre question. Votre question est enracinée dans et non dans . Une fois que je l'ai compris, tout est devenu 2 fois plus facile.
vous pensez vous êtes à cette situation ci-dessous où vous avez seulement 2 branches:
- featureBranch
- masterBranch
pourtant si vous faites un git branch -a
vous pourrez voir tout de vos branches, local et distant .
donc votre réel situation est:
- featureBranch
- masterBranch
- remoteBranch (s)
*---* <remote's Master> which is behind your local \ -*--*--*-----*<master> which is ahead of your remote/origin \ \ \ 1--*--*--*--2--*<feature>
pour que vous puissiez voir la différence semblable à ce que vous voyez dans Github Pull Request
vous devez diff
il avec votre à distance branche.
git diff <local branch> <remote>/<remote branch>
voir comparer la branche git locale avec la branche éloignée?