GitHubに空のブランチを作成します


130

と呼ばれる新しいGitHubブランチを作成したいと思いますrelease

このブランチは空である必要があります!ただし、x個のコミットがある既存のブランチがあり、そのコミット履歴は必要ありません。

私が見つけた唯一の方法は、ローカル --orphanブランチを作成することです。

回答:


274

--orphanオプションの何が問題になっていますか?空で履歴のないブランチが必要な場合は、これが最適な方法です...

git checkout --orphan empty-branch

次に、ステージング領域にあるすべてのファイルを削除できます(コミットされないようにするため)。

git rm -rf .

この時点で、マシン上に空のブランチがあります。

空のブランチをプッシュすることはできないため、GitHub(または他のGitリポジトリ)にプッシュする前に、コンテンツが含まれていない場合でも(つまり、空のコミット)、少なくとも1つのコミットが必要になります。

git commit --allow-empty -m "root commit"

最後に、それをリモートに押して、ビールを割って開きます

git push origin empty-branch

13

--orphan 空のブランチをローカルで作成するのに適していますが、それをプッシュしたり、他のブランチと対話したりするには、コミットが必要になります。

孤立したブランチで新しいコミットを作成することは、他のブランチと対話できなくなるため、お勧めできません。つまり、

git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories

代わりに、masterの最初のコミットから新しいブランチを作成することをお勧めします。コミットが空でない場合は、@ houtanbで説明されているように、最初のコミットの前に空のコミットを追加できます。


5

こちらの手順に従って、masterブランチのルートに空のコミットを作成することもできます。次にrelease、その空のルートコミットがある場所にブランチを作成します。


3

受け入れられた答えは私にいくつかの問題を引き起こしたので、私はこれをしました:

$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'

そして、マージ/プルリクエストの問題なしで私が欲しいものを手に入れました。私はちょうど私の第二のブランチを作成するためにコミットベースを選択しなければならなかったから。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.