26

開発ブランチがあるとしましょう。これから機能ブランチを作成して、機能を開発します。機能が開発されると、開発にマージされます。ここに示すのとほとんど同じです:

ここに画像の説明を入力

機能ブランチをフリーズして、それ以上コミットできないようにする方法はありますか?

ブランチを完全に削除しない理由は、履歴を表示しても機能ブランチを表示できるようにするためであり、機能に微調整が必​​要な場合、誰かが最後のコミットから新しい機能ブランチを作成できるようにするためです。以前の機能。

4

5 に答える 5

22

クリストファーの言うとおりです。タグ付けはこれを行うのに役立ちます。誰かがブランチをチェックアウトして編集するのを少し難しくするために、ブランチ名も削除することをお勧めします。

まず、ブランチを開発にマージします

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
于 2012-06-12T14:09:26.890 に答える
10

タグ付けするだけ。

git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen

確かに、後で誰かがやってきてブランチにプッシュすることはできますが、タグは強制的にオーバーライドされない限り変更されるべきではありません。心配な場合は強制プッシュを拒否するようにリモートを構成するか、信頼性を確保するために GPG キーでタグに署名することもできます。

フリーズされたときのフィーチャー ブランチの状態を取得するのは、 と同じくらい簡単git checkout frozenです。開発者は、次の 1 つのコマンドを使用して、この時点から自由に分岐できますgit checkout -B <new_branch> frozen

于 2012-06-12T12:13:14.577 に答える
2

ブランチ、タグ、リポジトリに沿ったアクセス制御と許可には、gitolitegerritなどを使用できます。

ここを見てください:

于 2012-06-12T12:11:22.937 に答える
1

Git - Branch status (frozen, inactive, etc) に記載されているgit-freezeを検討してください。

于 2014-01-03T18:07:12.363 に答える