Github创建空分支

Seb*_*der 34 git github

我在互联网上搜索了几个小时,找不到解决这个问题的方法:

我想创建一个GitHub名为的新分支release.这个分支需要是空的!但是有一个现有的分支与x提交,我不想拥有它commit history.

我找到的唯一方法是创建一个本地 --orphan分支


提前致谢 ;)

Cai*_*ete 84

--orphan选项有什么问题?如果你想要一个空的并且没有历史的分支,这就是要走的路......

git checkout --orphan empty-branch
Run Code Online (Sandbox Code Playgroud)

然后,您可以删除暂存区域中的所有文件(以便它们不会被提交):

git rm -rf .
Run Code Online (Sandbox Code Playgroud)

此时,您的计算机上有一个空分支.

在你可以推送到GitHub(或任何其他Git存储库)之前,你需要至少一次提交,即使它没有任何内容(即空提交),因为你不能推送一个空分支

git commit --allow-empty -m "root commit"
Run Code Online (Sandbox Code Playgroud)

最后,将它推到遥控器,然后打开啤酒

git push origin empty-branch
Run Code Online (Sandbox Code Playgroud)

  • 您好,创建空分支 github 存储库后,当我尝试从其他分支创建拉取请求时,没有显示任何文件差异。你能告诉我如何解决这个问题吗? (4认同)
  • 也许有些人对这个接受的答案有疑问,因为在删除所有文件之后和提交之前它缺少“git add .”步骤? (3认同)
  • 我很喜欢啤酒 (3认同)
  • `git rm -rf .` 从本地删除文件 (2认同)

thi*_*ign 19

--orphan 适合在本地创建一个空分支,但是,为了推送它或与其他分支交互,您需要提交。

在孤立分支上创建新提交不是一个好主意,因为您将无法与其他分支进行交互。IE

git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories
Run Code Online (Sandbox Code Playgroud)

相反,您应该更喜欢从 master 的第一次提交创建一个新分支。如果提交不为空,您可以在第一个提交之前添加一个空提交,如@houtanb 所述。


hou*_*anb 5

您还可以按照此处的说明master分支的根目录创建一个空提交。然后只需release在空的根提交所在的位置创建您的分支。