Question comparer la branche git locale avec la branche distante?


Comment puis-je voir le diff entre une branche locale et une branche distante?


733
2017-11-25 23:58


origine


Réponses:


Pour mettre à jour les branches de suivi à distance, vous devez taper git fetch d'abord et ensuite:

git diff <masterbranch_path> <remotebranch_path>

Vous pouvez git branch -a pour lister toutes les branches (locales et distantes) puis choisissez le nom de la branche dans la liste (il suffit de supprimer remotes/ à partir du nom de la succursale distante.

Exemple: git diff master origin/master (où "master" est une branche master locale et "origin / master" est une branche remote origin et master.)


297
2017-11-25 23:59



git diff <local branch> <remote>/<remote branch>

Par exemple git diff master origin/master, ou git diff featureA origin/next

Bien sûr à avoir m'a dit branche de suivi à distance tu dois git fetch premier; et vous en avez besoin pour avoir des informations à jour sur les branches dans le référentiel distant.


1189
2017-11-26 01:50



Premier type

git branch -a

pour obtenir la liste des branches disponibles. Sur la sortie, vous pouvez voir quelque chose comme

* master
  remotes/main/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/mt
  remotes/upstream/master
  remotes/upstream/mt

Puis montrez le diff

git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master

160
2018-04-12 19:26



Si vous êtes sur une branche donnée, et que vous voulez la comparer avec une branche en amont que vous suivez, utilisez

git diff @{upstream}

Courtoisie de cette réponse, la documentation git pour spécifier les révisions a:

<branchname>@{upstream}, par exemple. master@{upstream}, @{u}
  Le suffixe    @{upstream} à un nom de branche (forme courte <branchname>@{u}) fait référence à   la branche que la branche spécifiée par branchname est mis à construire sur   haut de (configuré avec branch.<name>.remote et branch.<name>.merge).   Un disparu branchname par défaut à celui en cours.


75
2018-06-16 02:01



Je comprends beaucoup mieux la sortie de:

git diff <remote-tracking branch> <local branch>

cela me montre ce qui va être abandonné et ce qui va être ajouté si je pousse la branche locale. Bien sûr, c'est la même chose, juste l'inverse, mais pour moi c'est plus lisible et je suis plus à l'aise pour regarder ce qui va se passer.


39
2018-04-14 19:38



Le moyen facile:

git fetch
git log -p HEAD..FETCH_HEAD

Cela récupérera d'abord les changements de votre télécommande par défaut (origine). Ce sera créé automatiquement lorsque vous clonez un repo. Vous pouvez également être explicite: git fetch origin master.

Puis git log est utilisé pour comparer votre branche actuelle avec celle qui vient d'être récupérée. (Le -p (générer un patch) option est ce qui montre la différences.)


25
2017-10-09 21:31



Laissez votre branche de travail est le développement et voulez faire la différence entre la branche de développement local et la branche de développement à distance, dans ce cas, la syntaxe devrait être comme git diff remotes/origin/development..development
                  ou

git fetch origin git diff origin/development 


11
2018-02-19 11:24



C'est comme ça que je le fais.

#To update your local.
git fetch --all

cela ira chercher tout à partir de la télécommande, donc quand vous vérifiez la différence, il va comparer la différence avec la branche distante.

#to list all branches
git branch -a

la commande ci-dessus affichera toutes les branches.

#to go to the branch you want to check difference
git checkout <branch_name>
#to check on which branch you are in, use
git branch
    (or)
git status

Maintenant, vous pouvez vérifier la différence comme suit.

git diff origin/<branch_name>

cela va comparer votre branche locale avec la branche distante


11
2018-02-21 06:27



Voici une réponse abrégée si vous comparez votre branche actuelle et quelque chose que vous voulez git pull.

git fetch
git diff FETCH_HEAD

La première commande déterminera quelle branche distante correspond à votre branche actuelle. Un artefact de ce calcul dans le FETCH_HEAD référence. Ensuite, la deuxième commande utilise cette comparaison de référence par rapport à ce que votre branche actuelle a.


8
2018-06-07 17:38



Je sais qu'il y a déjà plusieurs réponses à cette question, mais je recevais une erreur étrange en essayant la plupart d'entre eux.

Dans mon cas, j'ai une seconde télécommande appelée heroku C'est ne pas la origin et parce que ce n'était pas synchronisé j'ai eu cette erreur en essayant de courir le git diff master heroku/master:

fatal: ambiguous argument 'heroku/master': unknown revision or path not in the working tree.

ou ceci en essayant l'autre approche git diff master..heroku/master:

fatal: bad revision 'master..heroku/master'

La solution mentionnait explicitement le nom distant sur git fetch avant de courir git diff, dans mon cas:

$ git fetch heroku
$ git diff master heroku/master

J'espère que cela aide les autres avec ce même problème.


6
2018-03-16 14:29