„Git“ pašalina sujungimo fiksavimą iš istorijos

Mano git istorija atrodo taip:

2019

35
10 июля '13 в 20:44 2013-07-10 20:44 Benjamin Toueg yra nustatytas liepos 10 d. 13 val. 19.44 val. 2013-07-10 20:44
@ 3 atsakymai

Ar git rebase -i <sha before the branches diverged> tai leis jums pašalinti susijungimą, o žurnalas bus viena atskira eilutė, kaip norite. Taip pat galite ištrinti bet kokius įsipareigojimus, kurių jums nereikia. Priežastis, dėl kurios jūsų persikėlimas neveikė, buvo ta, kad jūs negrįžote pakankamai toli.

ĮSPĖJIMAS: tai perrašykite istoriją. Tai atlikus su pakeitimais, kurie buvo perkelti į nuotolinį repo, kyla problemų. Aš rekomenduoju tai daryti tik su vietiniais įsipareigojimais.

49
10 июля '13 в 21:10 2013-07-10 21:10 Atsakymą pateikė Schleis, liepos 10 d., 13 val., 9:10 val. 2013-07-10 21:10

Šią problemą galima išspręsti dviem būdais:

1 sprendimas : pašalinkite violetinius įsipareigojimus išsaugodami istoriją (jei norite grįžti atgal)

 git revert -m 1 <SHA of merge> 

-m 1 nurodo, kurią tėvų eilutę pasirinkti

Violetinis įsipareigojimas vis dar bus istorijoje, tačiau nuo to laiko, kai sugrįžote, kodą iš šių įsipareigojimų nematysite.


2 sprendimas. Pašalinti raudonos spalvos įpareigojimus visiškai (trikdomas pokytis, jei repo yra padalintas)

 git rebase -i <SHA before branching out> 

ir ištrinti (ištrinti linijas), atitinkančias violetinius įsipareigojimus.

Tai būtų mažiau sunku, jei įsipareigojimai nebūtų padaryti po susijungimo. Papildomi įsipareigojimai padidina konfliktų tikimybę revert/rebase .

10
14 июля '13 в 2:00 2013-07-14 02:00 atsakymas pateikiamas premjera liepos 14 d., 13 val. 2:00 2013-07-14 02:00

Pradedant nuo repo originalios būklės

2019

25 окт. Allen Luce atsakymas, pateiktas spalio 25 d 2017-10-25 02:51 '17 at 2:51 am 2017-10-25 02:51

Žr. Kitus klausimus apie žymas arba Užduokite klausimą