是否有可能在git中创建一个新的空远程分支而无需推送?

时间:2010-04-04 11:39:42

标签: git branch

创建远程分支的大多数示例都涉及从本地分支推送

有没有办法在不推送的情况下创建空的远程分支?

是否也可以创建一个本地空分支,检查出来然后将其链接到新的空的远程分支而不推送?

3 个答案:

答案 0 :(得分:20)

如博客文章“Start a New Branch on your Remote Git Repository”中所述:

  
      
  • 创建远程分支
  •   
git push origin origin:refs/heads/new_feature_name
  
      
  • 确保所有内容都是最新的
  •   
git fetch origin
  
      
  • 然后您可以看到分支已创建。
  •   
git branch -r
  

这应显示“origin/new_feature_name

     
      
  • 开始跟踪新分支
  •   
git checkout --track -b new_feature_name origin/new_feature_name

因此,要声明一个远程分支,即使 local 存储库中尚不存在的分支,git push也是必需的。

答案 1 :(得分:12)

git checkout --orphan new-empty-branch

然后

git rm -rf .

从新分支中删除所有文件。

答案 2 :(得分:1)

值得指出的是,Git 中不存在空分支这样的东西。 Git 中的分支名称总是选择某个特定的提交。根据定义,该提交是该分支上的 last 提交。所以一个分支总是至少有一个提交。

至少与其他版本控制系统相比,Git 的不寻常之处在于,作为任何一个特定分支上最后 次提交的提交,也可以在一些其他 em> 分支同时进行。它可以是在多个其他分支上的最后一次提交,也可以是其他某个分支上的非最后一次提交。

VonC's answer 通常适合提出此问题的人。

Onlyjob's answer 是设置创建一个非但不与任何其他现有分支共享任何提交的新分支的正确方法。这是一件罕见的事情,但是当您想要这样做时,以其他方式创建新的分支名称将不起作用。