2016-09-05 124 views
7

我試圖恢復在分支上完成的最新提交(由其他人)。我正在使用TortoiseGit客戶端。當我點擊「通過此提交恢復更改」時,git提供了兩種選擇:Parent1Parent2。這是什麼意思?什麼是Parent1和Parent2是什麼?git revert - git詢問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