開発ブランチがあるとしましょう。これから機能ブランチを作成して、機能を開発します。機能が開発されると、開発にマージされます。ここに示すのとほとんど同じです:
機能ブランチをフリーズして、それ以上コミットできないようにする方法はありますか?
ブランチを完全に削除しない理由は、履歴を表示しても機能ブランチを表示できるようにするためであり、機能に微調整が必要な場合、誰かが最後のコミットから新しい機能ブランチを作成できるようにするためです。以前の機能。
開発ブランチがあるとしましょう。これから機能ブランチを作成して、機能を開発します。機能が開発されると、開発にマージされます。ここに示すのとほとんど同じです:
機能ブランチをフリーズして、それ以上コミットできないようにする方法はありますか?
ブランチを完全に削除しない理由は、履歴を表示しても機能ブランチを表示できるようにするためであり、機能に微調整が必要な場合、誰かが最後のコミットから新しい機能ブランチを作成できるようにするためです。以前の機能。
クリストファーの言うとおりです。タグ付けはこれを行うのに役立ちます。誰かがブランチをチェックアウトして編集するのを少し難しくするために、ブランチ名も削除することをお勧めします。
まず、ブランチを開発にマージします
git checkout develop
git merge --no-ff feature_1
次に、ブランチをチェックアウトします
git checkout feature_1
次に、コメント付きのタグを作成します。
git tag -a -m "Freezing a feature branch that fixes.." feature_1_frozen
次に、ブランチを削除します
git checkout develop
git branch -d feature_1
これを行うと、ブランチを名前でチェックアウトできなくなります。代わりに、名前でタグをチェックアウトできます。これにより、コードへの変更を思いとどまらせる切り離された頭の状態になります。
まとめてオリジンと同期します...
更新と新しいタグをプッシュする
git push --tags origin develop
リモート機能ブランチを削除する
git push origin :feature_1
タグ付けするだけ。
git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen
確かに、後で誰かがやってきてブランチにプッシュすることはできますが、タグは強制的にオーバーライドされない限り変更されるべきではありません。心配な場合は強制プッシュを拒否するようにリモートを構成するか、信頼性を確保するために GPG キーでタグに署名することもできます。
フリーズされたときのフィーチャー ブランチの状態を取得するのは、 と同じくらい簡単git checkout frozen
です。開発者は、次の 1 つのコマンドを使用して、この時点から自由に分岐できますgit checkout -B <new_branch> frozen
。
ブランチ、タグ、リポジトリに沿ったアクセス制御と許可には、gitoliteやgerritなどを使用できます。
ここを見てください:
Git - Branch status (frozen, inactive, etc) に記載されているgit-freezeを検討してください。