ブランチの使用方法がより明確になるように、マスターブランチをリリースブランチと呼ぶプロジェクトに新しいポリシーを適用したいと思います。当然、候補ブランチも開発およびリリースします。
次を使用するだけで、マスターブランチの名前をローカルで変更できることを理解しています。
git branch -m master release
ただし、それはローカルのみです。これをリモートにプッシュしても、HEADはまだリモートマスターブランチを指しています。マスターブランチを完全に削除し、初期クローン時にデフォルトのローカルブランチを作成します。リリース。
どうすればこれを達成できますか?
編集: Originは巨大なサーバー上にあるため、masterブランチの削除でエラーが発生したようです。デフォルトブランチが「リリース」になるようにこれを変更することが可能かどうか、今見ようとしています。
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
マスターブランチをチェックアウトする
git checkout master
リリースブランチを作成して切り替えます
git branch release
git checkout release
それをサーバーにプッシュする
git Push Origin release
サーバー上のマスターブランチ参照を削除する
git Push Origin :master
ローカルマスターブランチを削除する
git branch -d master
注:この回答は、コマンドラインでアクセスできるセルフホストgitサーバーを対象としています。
remote master
クライアントからの実際には許可されておらず、denyDeleteCurrent
を禁止することは理にかなっていると思います。
ただし、マスターの名前を変更する最も簡単な方法リモートサーバーへのコマンドラインアクセスがある場合は、リモートで直接renameコマンドを実行することです。
これは私のために働いた:
git branch -m master release
これで、リモートリポジトリはrelease
をデフォルトのブランチとして使用し、git clone
任意のクライアントからのそのリポジトリで、デフォルトでリリースブランチをチェックアウトします。
必要に応じて構成するベアリポジトリを設定した後も非常に役立ちます。
他の人が以前に述べたように、ここでの問題は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
シンプル!