开发环境由 gerrit
、 git
以及 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
,默认分别为 master
和 default.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
tag
是 branch
上的一个节点,是静态的里程碑。 tag
名字就是这个节点的别名。
branch
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 -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 -