web-dev-qa-db-ja.com

git 'master'ブランチの名前を 'release'に変更するにはどうすればよいですか?

ブランチの使用方法がより明確になるように、マスターブランチをリリースブランチと呼ぶプロジェクトに新しいポリシーを適用したいと思います。当然、候補ブランチも開発およびリリースします。

次を使用するだけで、マスターブランチの名前をローカルで変更できることを理解しています。

git branch -m master release

ただし、それはローカルのみです。これをリモートにプッシュしても、HEADはまだリモートマスターブランチを指しています。マスターブランチを完全に削除し、初期クローン時にデフォルトのローカルブランチを作成します。リリース。

どうすればこれを達成できますか?

編集: Originは巨大なサーバー上にあるため、masterブランチの削除でエラーが発生したようです。デフォルトブランチが「リリース」になるようにこれを変更することが可能かどうか、今見ようとしています。

76
Kyle Hayes
git checkout -b release master    # create and switch to the release branch
git Push -u Origin release        # Push the release branch to the remote and track it
git branch -d master              # delete local master
git Push --delete Origin master   # delete remote master
git remote Prune Origin           # delete the remote tracking branch
97
Adam Dymitruk

マスターブランチをチェックアウトする

git checkout master

リリースブランチを作成して切り替えます

git branch release
git checkout release

それをサーバーにプッシュする

git Push Origin release

サーバー上のマスターブランチ参照を削除する

git Push Origin :master

ローカルマスターブランチを削除する

git branch -d master
9
Jeff Ferland

注:この回答は、コマンドラインでアクセスできるセルフホストgitサーバーを対象としています。

remote masterクライアントからの実際には許可されておらず、denyDeleteCurrentを禁止することは理にかなっていると思います。

ただし、マスターの名前を変更する最も簡単な方法リモートサーバーへのコマンドラインアクセスがある場合は、リモートで直接renameコマンドを実行することです。

これは私のために働いた:

  1. SSH経由でリモートgitサーバーにログインします
  2. プロジェクトのxxx.gitフォルダーに移動します
  3. 実行:git branch -m master release

これで、リモートリポジトリはreleaseをデフォルトのブランチとして使用し、git clone任意のクライアントからのそのリポジトリで、デフォルトでリリースブランチをチェックアウトします。

必要に応じて構成するベアリポジトリを設定した後も非常に役立ちます。

2

他の人が以前に述べたように、ここでの問題はGitoriousであり、デフォルトではHEADブランチを削除できません。この問題を回避するには2つのオプションがあります。 1つは、gitoriousサーバー(sshを使用)にログインし、ファイルサーバーでgit-repositoryを見つけて追加することです。

[receive]
        denyDeleteCurrent = warn

構成に。

より簡単なオプションは、デフォルトのブランチを変更することです。巨大なWebインターフェースでリポジトリに移動し、「リポジトリの編集」を押し、「GitリポジトリのHEADが指すシンボリック参照を変更:」を設定します。これが完了したら、masterブランチを削除できます。

理想的には、追跡を設定するので、これを行います:

git Push Origin HEAD:release
git checkout --track Origin/release

今、あなたは他のものを削除したいですか?

git branch -d master
git Push Origin :master

シンプル!

1
gahooa