У меня есть репо с файлом foo
в главной ветке. Я переключился на ветвь бар и внес некоторые изменения в foo
. Как я могу запустить git diff
между этой копией (которая еще не выполнена) и копией главной ветки?
Текущая рабочая копия файла с другой переданной копией
Ответ 1
Для меня работает следующее:
git diff master:foo foo
В прошлом это могло быть:
git diff foo master:foo
Ответ 2
Вы пытаетесь сравнить свое рабочее дерево с определенным именем ветки, поэтому вы хотите:
git diff master -- foo
Что из этой формы git -diff (см. git -diff manpage)
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.
FYI, есть опция --cached
(aka --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.
Ответ 3
Также: git diff master..feature foo
Так как git diff foo master:foo
не работает для каталогов для меня.
Ответ 4
git difftool -v tag/branch filename
Ответ 5
git diff mybranch master -- file
также должен работать