2016-09-08 7 views
0

После извлечения git я хотел бы просмотреть изменения кода, которые вводятся с восходящего потока.git: просмотр изменений после 'git fetch'

Я могу использовать git log -p [email protected]{u}, однако на выходе не будут присутствовать различия влияния коммитов/слияния запросов на тяну.

Есть ли способ включить те, которые выводятся, что даст исчерпывающую историю изменений, которые произошли с тех пор, как я последний раз вытащил?

Благодаря

ответ

1

При использовании git log -p для просмотра коммитов в виде заплаток, он делает, как вы заметили, пропускаемое слияние совершает, когда приходит время, чтобы Diff их. То есть, он показывает вам журнал сообщение, как обычно, но никакого различия вообще нет.

У вас есть три опции для управления этим:

  • -c (один дефис и один нижний регистр C): показать одну форму комбинированного дифференциала
  • --cc (два дефиса и два в нижнем регистре Cs): показать другую форма комбинированного различия
  • -m: «разделить» каждое слияние, показывая патч против каждый родитель. В этом случае вы дважды увидите сообщение журнала.

Объединенный формат diff описан в a separate section of the git diff documentation (и нескольких других, которые разделяют этот файл). По некоторым причинам, хотя, ключевым фактом является hidden in this earlier section:

Обратите внимание, что комбинированные дифф перечислены только те файлы, которые были изменены со всех родителей.

Довольно часто это на самом деле то, что вы хотите: если слияние хранится файл README.txt же, как README.txt в обоих родителей совершить, это, вероятно, не интересно, чтобы показать диф против другого родителя фиксации. Однако, если вы этого не ожидаете, это может быть неожиданностью. Единственный способ победить его - использовать -m.


Это имеет некоторый смысл для git diff-tree, git diff-files и git diff --raw как раздел самого описывающей файлов, которые будут перечислены и файлы, которые соответствуют по крайней мере один из родителей не будет перечислены. Однако, если вы не запомнили этот маленький факт и просто ищете документацию для ближайших следующих двух разделов («создание патчей с» и «комбинированный формат diff»), ключевое предложение, вероятно, даже не будет в вашем окне. Я до сих пор помню, как меня сожгли, но много лет спустя. :-)

+0

'git log .. @ {u} -p -m -first-parent' предоставляет всю необходимую мне информацию. Я хотел бы отметить, что упоминание комбинированных опций diff (-c/- c), где немного сбрасывается: поскольку они не генерируют diff для файлов, идентичных файлам любого родителя, изменения в слияниях, которые принимаются as-is не отображается на выходе. Я думаю, что принятие чужих изменений в запросе на вытягивание - это чаще, чем не обычный случай. Во всяком случае, '-p -m -first-parent', похоже, выполняет эту работу. Благодаря! – pointyhat

+0

Да, я вроде хотел бы, чтобы была опция объединенного-diff, которая все еще показывала файлы, которые соответствовали одному (или нескольким, но не обоим/всем) родителям (родителям), и что * этот * (несуществующий) вариант был по умолчанию , – torek