На что указывает HEAD? - PullRequest
       13

На что указывает HEAD?

1 голос
/ 01 декабря 2010

Я хочу сравнить мою локальную ветку master с удаленной веткой origin/master.Я знаю, как сделать git pull --rebase; git diff origin/master из моей локальной ветви master, чтобы обнаружить построчные различия в коде.Но я хочу сравнить истории коммитов, т.е. показать git log и git log origin/master бок о бок.Я попытался git show-branch -a, но получил:

* [master] change content background-color to blue
 ! [origin/HEAD] add favicon
  ! [origin/master] add favicon
---
*   [master] change content background-color to blue
*++ [origin/HEAD] add favicon
  1. Есть ли лучший способ?
  2. Кроме того, на что указывает HEAD проверенный коммит?

Ответы [ 4 ]

3 голосов
/ 02 декабря 2010
  1. Есть ли лучший способ ...

    1. для обнаружения построчных различий в коде?

      git diff origin/master..master

    2. чтобы сравнить истории коммитов?

      git log origin/master..master

  2. Кроме того, на что указывает HEAD, извлеченный коммит?

    HEAD указывает на «вершину» текущей «ветви».

1 голос
/ 01 декабря 2010

Вы можете сделать:

git log master..origin/master

, чтобы получить список коммитов, которые находятся «между» master и origin/master.

HEAD указывает на извлеченный коммит.1009 *

Как синтаксис точка-точка, так и HEAD задокументированы в gitrevisions (7) .

0 голосов
/ 02 декабря 2010

Вы должны использовать git fetch, а не git pull. git pull попытается объединить ветку. Вы находитесь в конфликте, используйте git merge --abort, чтобы прервать его.

0 голосов
/ 02 декабря 2010

Это дает мне достаточно хороший способ взглянуть на различия при наличии видимых коммитов с обеих ветвей

git-forest --date-order $(git merge-base master origin/master) master origin/master

(В качестве альтернативы замените на gitk или git log --oneline --graph ..)

...