Git Diff между HEAD и SVN Master - PullRequest
       12

Git Diff между HEAD и SVN Master

13 голосов
/ 10 февраля 2010

Я хочу сделать различие между локально зафиксированным изменением и между последним изменением, внесенным SVN. то есть HEAD и что находится на магистрали SVN Master.

какая будет подходящая команда?

Приветствия

Ответы [ 4 ]

7 голосов
/ 10 февраля 2010

Полагаю, вы говорите о 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.

6 голосов
/ 25 августа 2011

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

1 голос
/ 10 февраля 2010

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

git diff HEAD ~ 3 HEAD

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

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

1 голос
/ 10 февраля 2010

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

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

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

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

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

git diff svn_trunk..HEAD 
...