0%

repo 以及 git tag branch

开发环境由 gerritgit 以及 repo 搭建而成,本文记录此开发环境下对 branch 以及 tag 的管理

repo

repo 是用来管理 git 仓库的脚本工具,常用命令如下

  • repo init
  • repo sync
  • repo forall

repo init

可以使用 repo init --help 查询具体命令,常用命令如下

repo init -u xxx -b branch_name -m NAME.xml

repo 可以管理多个 branch / revision 和多个 manifest file,默认分别为 masterdefault.xml

repo sync

可以使用 repo sync --help 查询具体命令,常用命令如下

repo sync
repo sync project_name
repo sync -c -d

repo forall

可以使用 repo sync --help 查询具体命令,常用命令如下

repo forall -c 'command line'
repo forall -c 'git checkou .'
repo forall -c 'git tag newtag'

repo 切换分支

repo init -b new_branch
repo sync
repo forall -c git reset --hard
repo init -b new_branch
repo sync

git

tagbranch 上的一个节点,是静态的里程碑。 tag 名字就是这个节点的别名。

branch

Git 分支

git branch -a
git branch -av
git branch -avv
git checkout -b newbranch
git branch newbranch
git branch -d newbranch
git checkout v2 -b origin/v2.5.0

tag

git tag 命令
git tag 常用操作

git tag
git tag -l 'regex'
git show tagname
git branch -a --contains tagname
git checkout tagname
git branch branchname tagname
git tag v0.2.0
git tag v0.2.0 -light
git tag -a v0.1.0 -m "release 0.1.0 version"
git tag -d v0.1.2
git tag -a v0.1.0 49e0cd22f6bd9510fe65084e023d9c4316b446a6
git push origin v0.1.0
git push origin -–tags

gerrit

gerrit query
gerrit review
gerrit create-branch

通过 ssh 可以直接操作 gerrit,涉及到如下命令

ssh -p 29418 review.example.com gerrit create-branch myproject newbranch master
  $ ssh -p 29418 review.example.com gerrit review \
    --verified +1 \
    --code-review +2 \
    --submit \
    --project this/project \
    $(git rev-list origin/master..HEAD)

example

创建分支

git clone ssh://git@192.168.110.254/manfiest.git
cd manfiest
git co origin/$SOURCE_VERSION -b $RELEASE_VERSION
sed -i "s/\"$SOURCE_VERSION\"/\"$RELEASE_VERSION\"/g" ./default.xml
git ci -m "$RELEASE_VERSION" -a
git push --all

ssh git@192.168.110.254 -t /home/git/repack

ssh -p 29418 git@192.168.110.254 gerrit create-branch projects/xx $RELEASE_VERSION $SOURCE_VERSION

创建 tag

git clone ssh://git@192.168.110.254/manfiest.git
cd manfiest
git co origin/$SOURCE_VERSION -b $RELEASE_VERSION
sed -i "s/\"$SOURCE_VERSION\"/\"refs\/tags\/$RELEASE_VERSION\"/g" ./default.xml
git ci -m "$RELEASE_VERSION" -a
git push --all

ssh git@192.168.110.254 -t /home/git/repack

cd xx; git tag $RELEASE_VERSION; git push $SOURCE_VERSION --tags; cd -

Ref

  1. Repo 切换分支与同步代码
  2. Gerrit Code Review for Git
  3. Gerrit Code Review - Command Line Tools