2016-09-05 3 views
7

Я пытаюсь вернуть последнюю фиксацию, сделанную на ветке (кем-то другим). Я использую клиент TortoiseGit. Когда я нажимаю «Отменить изменения этой фиксацией», git предлагает два варианта: Parent1 и Parent2. Что это значит? Что такое Parent1 и что такое Parent2?git revert - git ask parent1 или parent2

screenshot

+1

Также посмотрите http://stackoverflow.com/questions/5970889/why-does-git-revert-complain-about-a-missing-m-option –

ответ

3

Каждое совершение в git имеет как минимум один родитель (кроме первого/начального коммита). Родитель фиксации является предыдущим.

C1 <- C2 <- C3 

C1 является первоначальной фиксацией. C2 - второй. C1 является родительским элементом C2. То же самое относится к C3.

Согласование слияния - это особое обязательство в смысле количества родителей.

C1 <- C2 <- C3 

       \ 

.. C4 <- C5 <- C6 

C6 - это слияние. Он имеет двух родителей: C3 и C5. Если вы объединили две ветви (коммиты), когда вы были на C5: C5 считается родителем 1 (первый родитель), а C3 - родителем 2 (второй родитель).

3

Похоже, что вы пытаетесь вернуться к слияния совершить в вашей ветке. Сумма слияния имеет два родителей, по одному для каждой ветви, участвующей в слиянии. Вам нужно выбрать версию истории вашего родителя, которую вы хотите сохранить. Вы должны проверить каждого родителя и решить, какой из них вы хотите сохранить. Скорее всего, вы, вероятно, захотите сохранить родительский коммит, который появляется в ветке php7. Это должно быть опция Parent 1 в раскрывающемся списке.

php7 A -- B -- M  <-- retain this parent's version of history 
      /
master .. C