Na navigaci | Klávesové zkratky

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.php, 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.

Komentáře

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

    avatar

    Mělo by fungovat:

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

    před 5 lety | reagoval [2] Jiří Knesl
  2. Jiří Knesl http://www.knesl.com #2

    avatar

    #1 Jiří Knesle, 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.

    před 5 lety

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