在没有本地仓库的情况下在远程仓库创建分支

4

是否可以在没有本地克隆副本的情况下在远程主存储库中创建分支?

由于存储库太大,仅为了创建和推送分支而克隆副本是极其浪费时间的(约20分钟),特别是由自动化系统出于程序和功能原因进行分支制作,并且它不需要存储库本身的内容。

2个回答

5

虽然不是基于现有分支,但你可以使用一个全新无关的仓库,在其中推送一个空的分支。请按照以下测试说明进行尝试。

为测试创建原始存储库

cd ~/Desktop/test
mkdir original_repo && cd original_repo 
git init && touch testfile && git add . && git commit -m "master repo"
cd ..

创建一个新的空仓库

mkdir hacky_repo && cd hacky_repo
git init && touch init && git add . && git commit -m "empty new repo"

将原始仓库添加为此仓库的远程仓库。
git remote add original ../original_repo/

现在,将此仓库中的分支推送到原始仓库。
git push original master:some_new_branch
cd ../original_repo

如果现在你执行 git branch 命令 - 你应该会在原始仓库中看到新的分支。

$) git branch
* master
  some_new_branch

这里的假设是您提前知道所有自由的分支/分支命名空间,相关于IT技术。

1
不错。+1。肯定比我的答案容易。 - VonC
现在我明白了 - 这总是推送一个带有“空”内容的新分支到hacky_repo。它实际上并没有分支远程主分支中已经包含的内容。我希望拥有类似于cvs的rtag命令的功能,用于创建所有现有文件的分支。不过还是感谢您提供的有趣解决方案;它回答了我的问题,虽然我的问题描述得很差。 - simpleuser

2
除了从任何仓库推送分支之外,其他可能性包括在服务器上设置某种监听器,以便:
  • 触发分支的创建(http监听器)
  • 在远程端创建分支(通过ssh命令)
但这意味着您可以访问该服务器。
如果服务器是GitHub,则无法执行此操作,但您可以使用GitHub API,例如“创建引用”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接