2010-07-14 6 views
3

У меня есть две ветви, и я объединяю ветвь1 в branch2 без перемотки вперед.Как я могу показать файлы, в которых было объединено без перемотки вперед в Git?

После слияния я запускаю команду «git show», я получаю сообщение о коммите (которое является слиянием из без перемотки вперед) и никаких файлов списка, которые были изменены.

Как получить файлы списка, измененные в слиянии?

РЕШИТЬ:

Когда в branch2 после слияния, я использовал следующее:

git diff HEAD~ 

возвратившей правильный результат.

+0

Я думаю, что оба приведенных ниже ответа предполагают, что трудно точно интерпретировать то, о чем вы просите, - это могло бы помочь добавить график фиксации ASCII-art, показывающий, что вы хотите видеть различия между ними. –

+1

Вместо добавления SOLVED, как указано выше, добавьте ответ на свой вопрос. Вы не получите удовольствия от принятия очков, но по крайней мере люди будут знать, что вы намеревались, и ответ, который вы нашли. –

ответ

1

Когда в ответвления 2 после слияния, я использовал следующее:

git diff HEAD~ 

Это вернуло правильный результат.

1

Вы попробовали команду git whatchanged? (Не проверено):

git whatchanged --oneline 

или

git whatchanged --oneline ..HEAD^ 
git whatchanged --oneline ..HEAD^2 

--oneline 

Это сокращение для "--pretty=oneline --abbrev-commit" используются вместе.

Мне нужно, чтобы увидеть все файлы, которые были изменены в ветке1, которые были объединены в branch2.

branch2 может быть представлен здесь HEAD^2, вторым родителем HEAD.

Что касается «всего списка файлов»:

git diff --name-status ..HEAD^2 

должен дать вам только список файлов с их ассоциированным статусом.

+0

Это дает мне все изменения для всех коммитов, такие же, как «git log». Мне нужно увидеть все файлы, которые были изменены в ветке1, которые были объединены с branch2. – chafnan

+1

@chafnan: вы попробовали ''--oneline'' с' HEAD^2' (который должен представлять 'branch2'). См. Мой обновленный ответ. – VonC

0

После выполнения слияния проверьте вывод git reflog, в котором отслеживаются концы ветвей. Первая строка должна быть вашей фиксацией слияния, а вторая должна быть где branch2 был до слияния. Если это выглядит правильно, вы можете видеть из второго столбца этого вывода, что предыдущий коммит может упоминаться как [email protected]{1}, так, чтобы увидеть, какие файлы были изменены в результате слияния, вы можете сделать:

git diff --stat [email protected]{1} 
+0

Это приближает меня, но у ветки 1 было несколько коммитов.Как получить diff на всех коммитах? – chafnan

+0

Итак, вы хотели бы, чтобы все файлы были изменены как в 'branch1', так и в' branch2' с того момента, когда они разошлись, когда они слились? Если это так, и если ваша ветка все еще находится на фиксации слияния, я думаю, что вы можете сделать это с помощью 'git diff --stat $ (git merge-base HEAD^1 HEAD^2)' –

 Смежные вопросы

  • Нет связанных вопросов^_^