diff текущая рабочая копия файла с подтвержденной копией другой ветви - PullRequest
124 голосов
/ 02 февраля 2012

У меня есть репозиторий с файлом foo в главной ветке.Я переключился на ветку бара и внес некоторые изменения в foo.Как теперь я могу запустить git diff между этой копией (которая еще не зафиксирована) и копией главной ветви?

Ответы [ 5 ]

122 голосов
/ 02 февраля 2012

У меня работает следующее:

git diff master:foo foo

В прошлом это могло быть:

git diff foo master:foo

88 голосов
/ 02 апреля 2013

Вы пытаетесь сравнить ваше рабочее дерево с конкретным именем ветви, поэтому вы хотите следующее:

git diff master -- foo

Из этой формы git-diff (см. Страницу руководства git-diff)

   git diff [--options] <commit> [--] [<path>...]
       This form is to view the changes you have in your working tree
       relative to the named <commit>. You can use HEAD to compare it with
       the latest commit, or a branch name to compare with the tip of a
       different branch.

К вашему сведению, есть также опция --cached (он же --staged) для просмотра различий в том, что вы поставили, а не все в вашем рабочем дереве:

   git diff [--options] --cached [<commit>] [--] [<path>...]
       This form is to view the changes you staged for the next commit
       relative to the named <commit>.
       ...
       --staged is a synonym of --cached.
14 голосов
/ 22 марта 2012

Также: git diff master..feature foo

Поскольку git diff foo master:foo не работает для каталогов для меня.

9 голосов
/ 19 июля 2013
git diff mybranch master -- file

также должно работать

9 голосов
/ 24 сентября 2012
git difftool -v tag/branch filename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...