repo新建分支

最近在做一个项目的移植,需要从主分支上,拉一个分支来移植旧平台上的修改。之前都是用git仓库直接管理版本,但是这个项目由于有多个git仓库,因此使用了repo来管理这些git仓库,从事这个项目,首先我需要拉一个repo分支来移植。

​ repo最大的特点就是

其实repo只不过是利用git(manifest仓库)来记录管理多个git仓库而已。因此我们利用repo创建一个新的分支,其实就是给repo管理的每个git仓库创建一个一样的新分支。我们知道单个git仓库创建分支的命令很简单。

1.创建一个新分支

git 创建一个分支:

git checkout -b new_branch_name

那么对于repo来说就是对所有的仓库进行创建一个新分支命令如下。

repo forall -c "git checkout -b new_branch_name"

repo forall -c :此命令的意思是遍历所有的git仓库(除了管理的仓库manifest外),并在每个仓库(除了管理的仓库manifest外)执行-c后面所指定的命令,-c也就是所指的是command。如上面就是在每个仓库(除了管理的仓库manifest外)都执行git checkout -b new_branch_name命令,那么这样就可以给每个仓库创建了一个一样的新分支了。

2.推上服务器

上面的创建分支操作只是在本地创建了一个新分支,我们还要推到服务器上。
同样git在本地创建新分支后,推上服务器的命令的如下

git push <远程主机名> <本地分支名>:<远程分支名>

需要注意的是,如果省略本地分支名,则表明的意思是删除远程分支。如下就是相当于删除远程的master分支

git push origin :master
#相等于
git push origin --delete master

如果省略远程分支,就表示远程分支名默认跟本地分支名一样,如果远程分支不存在,则创建一个跟本地分支名一样的远程分支。如下

git push origin local_branch_name

repo把本地分支推上服务器:

repo forall -c "git push origin local_branch_name"

3.把新分支添加到manifest仓库

大家都知道manifest仓库是管理repo下面其他仓库的,因此我们要让repo知道我们创建了新分支,好让同步的时候可以根据分支名来同步分支。

(1)为manifest仓库创建新分支new_branch_name
因为repo forall -c的命令是除了.repo/manifest下的仓库都进行git命令,所以我们还需要在.repo/manifest也创建一个分支.

.repo/manifests$ git checkout -b new_branch_name

(2)并且修改default.xml

<default remote="origin" revision="new_branch_name" sync-j="4"/>

(3)把新分支推上服务器

git add default.xml
git commit -m "add a new branch"
git push origin new_branch_name

4.验证

新建一个文件夹,然后拉取该分支是否成功,成功则OK

repo init -u git@xxxx -b xxxx
repo sync -c
repo forall -c “git checkout -b xxx origin/xxx”
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值