git help

Fórumok

Van egy git repo, amiben régebben létrehoztam egy új branch-t. Most szeretném, ha ő lenne a továbbiakban a master. Ezt hogy illik megcsinálni? Kissé belekavarodtam a doksiba.


            új --------- I most itt tartok
            /
master ----
            \
            régi

A "most itt tartok" pontnál szeretném visszatéríteni az "új" branch-t a "master"-be, felszámolva az "új"-at, a "régi"-ben meg megőrizném azt az állapotot, ami eddig a master volt.
A jelek szerint a "git merge új" csak a módosításokat viszi át a master-be, de az "új" megmarad.
O.K., törlöm, oszt jónapot, de ezt így is szokás vagy van rá valami egyéb mód?

Hozzászólások

Ha már nem kell a branch akkor törlöd. Ha pedig a master merge előtti állapota is kell, akkor arról csinálj egy tag-et, vagy akár egy új branchet ha akarsz onnan elágazva fejleszteni valamit.
--
openSUSE - KDE user

"O.K., törlöm, oszt jónapot, de ezt így is szokás vagy van rá valami egyéb mód?"

Miért kéne rá más mód? A git nem nagyon tolja a szádba, hogy milyen branching modellt használsz, meghagyja neked. Ez nyilván annyiban hátrány, hogy kénytelen vagy magad kitalálni, hogy mit akarsz, cserébe nem "kötelez" semmire. Érdemes megnézni, milyen stratégiákat szoktak követni, és miért, aztán választani egyet. Mondjuk ha egyedül piszmogsz kisebb dolgokon, akkor imho nem kell túlbonyolítani, egyszerűbb dolgok masterre, ami bonyásabb az külön branch, ha kész, akkor merge a masterre, branch töröl, csá.

Szerk: kicsit felreertettem, nem ez kell neked. Vagy ha nem ertettem felre, akkor lehet megis. A "regi" az most oda mutat, ahol a master all? Mert akkor jo lesz ez neked, "regi" megmarad, "master" megkapja csak az "uj" modositasait, aztan torolheted az "uj" branchet.

-----

Alltisd vissza a mastert arra a commitra, ahol szetvalt a ket branch (git reset --hard {commithash}), majd mergeld be a masik branchet masterre.

Igy a masteren levo, nem kello commitok "elvesznek", nem lesznek benne tobbe a historyban (de a commit hash ismeretevel meg elohozhatoak - gondolom amig nem tolsz egy git gc-t).

Elotte csinalj mentest a git directoryrol, fejbol irtam a dolgot :)

Sserk2: amugy ez history rewrite, nem egeszseges, ha csapatban dolgozol. Abban az esetben jobb egy revertet tolni a nem kivant commitokra HEAD repositioning helyett, majd utana mergelni.

Ld: https://stackoverflow.com/a/1470452

Szerk3: ha a master nem divergalt el az "uj"-tol, akkor ahogy fentebb is emlitettek, merge majd torold az "uj"-at.