git如何远程创建分支
我不知道有什么办法可以直接在远程创建分支而不需要clone到本地。
背景需求
我的需求是
直接在远程服务器上创建一个分支
直接在远程服务器上删除一个分支
这期间都不需要clone到本地来。
原因是当项目有多个repository的时候其中的部分创建了一个分支,而另一些没有创建;有些操作(可能不合理,但是存在)需要访问所有repository的同一个分支名字,但是部分有部分没有。
那么我就希望给没有的repository也创建一个这样的分支,因为这个创建就是基于其他分支(比如主干),也没有任何代码更新,这样我就不需要把主干分支clone到本地,而直接在远程创建分支即可。
遗憾的是一直没有找到这样的办法。
请赐教 :-)
替代办法
下面的办法还是要clone代码到本地
检查远程repository上是否有对应的分支
$ git ls-remote
如果targetbranch存在那么返回分支信息
$ git ls-remote ssh://@://.git
refs/heads/
$
如果targetbranch不存在那么返回空
$ git ls-remote ssh://@://.git
$
没有任何输出。
一个简单脚本判断:
# Check whether a branch exist or not in remote
# @param $1 repository URL
# @param $2 branch name
# @return 0 : branch exist
# 1 : branch does not exist
# 255 : error happen
function branchExist() {
BRANCH=$(git ls-remote $1 $2)
if [ $? -ne 0 ]; then
# error happen
return 255
fi
if [ "X${BRANCH}" == "X" ]; then
# branch does not exist
return 1
fi
# branch exist
return 0
}
创建远程分支
$ git clone --depth 1 -b ssh://@://.git
$ cd
$ git checkout -b
$ git push -u origin
删除远程分支
$ git branch -d
$ git push -u origin --delete