私が開発ブランチを持っているとしましょう。これから機能ブランチを作成して機能を開発します。機能が開発されると、開発にマージされます。ここに示すように:
機能ブランチを凍結して、それ以上コミットできないようにする方法はありますか?
ブランチを完全に削除しない理由は、履歴を表示しても機能ブランチが表示され、機能に微調整が必要な場合、誰かが最後のコミットから新しい機能ブランチを作成できるようにするためです以前の機能。
クリストファーは正しいです。タグ付けはこれを行うのに役立ちます。ブランチ名も削除して、誰かがブランチをチェックアウトして編集するのが少し難しくなるようにすることをお勧めします。
まず、ブランチを開発にマージします
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
これを実行すると、ブランチを名前でチェックアウトできなくなります。代わりに、名前でタグをチェックアウトできます。これにより、分離されたヘッド状態になり、コードへの変更を阻止します。
物事をまとめて、Originと同期します...
更新と新しいタグをプッシュする
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-ブランチのステータス(凍結、非アクティブなど) で述べた git-freeze を検討してください。