Git Разница между HEAD и SVN Master

Я хочу сделать Diff между локально измененным изменением и между последним измененным SVN последним изменением. то есть HEAD и то, что находится на соединительной линии SVN.

что было бы подходящей командой?

Приветствия

Ответ 1

Я предполагаю, что вы говорите о git -svn:

$ git-svn fetch              # get the latest from svn, without merging yet
$ git diff ..remotes/git-svn # or <treeish>..remotes/git-svn

Я не знаю, может ли remotes/git-svn быть где-то еще. Проверьте с помощью git branch -a.

Ответ 2

git diff trunk работал у меня!

Ответ 3

Самый простой способ сделать это - сделать разницу между HEAD и импортом trunk в репозиторий git.

Но если вы не можете сделать git svn rebase в своем текущем репо, потому что вы не хотите ничего импортировать (но видите только разницу с репо SVN), вы можете клонировать свое репо на второе репо, где вы можете на любом обновить его содержимое SVN trunk.

Затем вы объявляете ветвь отслеживания и извлекаете этот repo2 в текущем репо:

master/HEAD
svn_trunk    # tracks repo2/trunk/HEAD, refreshed by a git svn rebase 

и вы можете различать:

git diff svn_trunk..HEAD 

Ответ 4

Я пробовал это:

git diff HEAD ~ 3 HEAD

и он работал, так как я хотел видеть разницу между 3 локально зафиксированными изменениями и HEAD на туловище.

Но было ли это правильно? Это сработало!:)