Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Translate to English… Ins Deutsche übersetzen…

Git: jak na hromadný rebase

Pokud máte v Git repozitáři víc vývojových větví, je rozhodně dobré je průběžně aktualizovat oproti masteru. V řeči Gitu jde o rebase. Aktualizované větve se pak mnohem snáze aplikují (merge) do hlavní vývojové větve. A pokud máte větví opravdu hodně, aktualizovat každou zvlášť je zdlouhavé. Pomoci může skript rebaseall.phpc, který stačí zavolat někde uvnitř repozitáře:

<?php

// zjisti seznam větví
exec('git branch', $branches);

// postupně každou rybejzuj proti masteru
foreach ($branches as $branch) {
        $branch = trim($branch, "* \r\n");
        passthru("git rebase master $branch", $errorCode);
        if ($errorCode) {
                exit;
        }
}

// a nakonec se vrať na master
passthru('git checkout master');

Je možné, že se to dá zapsat i jedním příkazem z bashe, ale já rád skriptuju v PHP a bash nemám.

napsáno 22. 11. 2011 | shlédnuto 1739x | nahoru


Komentáře RSS 2.0 komentářů » přidat

avatar

#1 Jiří Knesl http://www.knesl.com nový

Mělo by fungovat:

for branch in $(git branches); do git rebase master $branch; done; git checkout master

Posláno 23. 11. 2011 v 9.37 | Odpovědět
Na komentář reagoval [2] Jiří Knesl
avatar

#2 Jiří Knesl http://www.knesl.com nový

#1 Jiří Knesl: Ještě jinak (nebudu branchovat sám do sebe)

for a in $(git branch | grep -v *); do git rebase master $a; done; git checkout master

Přiznávám, že Git moc neumím, ale mělo by to stačit.

Posláno 23. 11. 2011 v 9.44 | Odpovědět

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.

Výtah na začátek článku na první komentář

Názory čtenářů v diskusích nejsou názory provozovatele webu, a ten za jejich obsah neodpovídá.

phpFashion © 2004, 2012 David Grudlo webu

Pokud není uvedeno jinak, podléhá obsah těchto stránek licenci Creative Commons BY-NC-ND Creative Commons License BY-NC-ND

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.