Подтвердить что ты не робот

В Git, как мне отличить от первого фиксации моей ветки?

Я сделал несколько коммитов в локальном филиале, но я не уверен, что лучший способ отличить то, что у меня есть, к состоянию моего ветки. Я знаю, что могу сделать что-то вроде git diff HEAD HEAD~6, если в моей ветке было 6 коммитов, но я надеялся на то, что не зависело от количества коммитов.

Изменить: Я не упоминал об этом: я надеялся, что мне не придется прорываться через журнал, чтобы получить хеш от коммита, от которого я отчуждался. Например, если бы у меня было 80 коммитов, это не было бы забавной задачей.

Кроме того, предположим, что исходная ветвь I, разветвленная, уже имела несколько изменений.

4b9b3361

Ответ 1

Вы хотите использовать синтаксис тройной точки, описанный в git help diff:

git diff otherbranch...

Это то же самое, что:

git diff otherbranch...HEAD

что совпадает с:

git diff $(git merge-base otherbranch HEAD) HEAD

Команда merge-base печатает "лучший" (самый последний) общий предок, поэтому приведенная выше команда показывает разницу между последней фиксацией, которая имеет HEAD, с otherbranch до HEAD.

Обратите внимание, что вместо otherbranch можно использовать @{u}, чтобы увидеть изменения, сделанные вами после того, как вы расходились с ветвью вверх по течению. Подробнее о синтаксисе см. git help revisions.

Ответ 2

git diff <SHA-1 of the commit from which you branched>..HEAD

Вы можете получить SHA-1 вашей точки перехода, выполнив git log.