Будет ли git rebase в этом сценарии возвращать тот же ha sh? - PullRequest
1 голос
/ 05 мая 2020
A -- B -- C <-- master
       \
        D -- E <-- your-cool-branch

Я понял, что в комментариях к исходному коду в коммите D есть опечатка. Я все равно хотел бы отправить запрос на вытягивание в виде двух коммитов D 'и E', где D '- фиксированная версия D , и E '- то же самое, что и E.

Если я перебазирую do, чтобы это произошло, будет ли E' commit ha sh тем же E? Почему или почему нет?

Я попытался воспроизвести это, но я не должен правильно выполнять ребазинг.

1 Ответ

2 голосов
/ 05 мая 2020

Во-первых, любое перебазирование было бы определением, изменяющим E 'SHA1 commit, поскольку родительский элемент не будет таким же: это будет D', чей новый родительский элемент после перебазирования (C) изменится с B раньше.
Плюс D сам изменен вашим исправлением.

Итак, после git rebase master:

A -- B -- C <-- master
           \
            D' -- E' <-- your-cool-branch

См. " Анатомия Git фиксации"from Christoph Burgdorf : идентификатор фиксации будет включать:

sha1(
    commit message  => "second commit"
    committer        => Christoph Burgdorf <christoph.burgdorf@gmail.com>
    commit date     => Sat Nov 8 11:13:49 2014 +0100
    author          => Christoph Burgdorf <christoph.burgdorf@gmail.com>
    author date     => Sat Nov 8 11:13:49 2014 +0100
    tree            => 9c435a86e664be00db0d973e981425e4a3ef3f8d
    parents         => [0d973e9c4353ef3f8ddb98a86e664be001425e4a]
)

Или: Git Модель объекта

http://shafiul.github.io/gitbook/assets/images/figure/object-commit.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...