diff --git a/app/Console/Controller/GitLabController.php b/app/Console/Controller/GitLabController.php index fd11e62..7b5e453 100644 --- a/app/Console/Controller/GitLabController.php +++ b/app/Console/Controller/GitLabController.php @@ -74,6 +74,7 @@ protected static function commandAliases(): array 'up' => 'update', 'updatePush' => ['upp', 'up-push'], 'project' => ['pj', 'info'], + 'checkout' => ['co'], ]; } @@ -330,6 +331,32 @@ public function cloneCommand(FlagsParser $fs, Output $output): void $output->info('recommend run: `kite gl init` for init some information'); } + /** + * checkout to new branch and update code to latest + * + * @arguments + * branch string;target branch name;true + * + * @options + * --np, --no-push bool;dont push to origin remote after update + * + * @param FlagsParser $fs + * @param Output $output + */ + public function checkoutCommand(FlagsParser $fs, Output $output): void + { + $co = Cmd::git('checkout') + ->addArgs($fs->getArg('branch')) + ->runAndPrint(); + + if ($co->isFail()) { + return; + } + + $output->notice('update branch code to latest'); + $this->runUpdateByGit(!$fs->getOpt('no-push'), $output); + } + /** * show gitlab config information *