web-dev-qa-db-ja.com

Gitブランチをフリーズする

私が開発ブランチを持っているとしましょう。これから機能ブランチを作成して機能を開発します。機能が開発されると、開発にマージされます。ここに示すように:

enter image description here

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

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

24
millie

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

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

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
20
gjcamann

タグを付けるだけです。

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

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

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

8
Christopher

gitoliteまたはgerritのようなものを使用して、アクセス制御と許可を行うことができますブランチ、タグ、リポジトリ。

ここを見てください:

2
Fatih Arslan
1
Philip Oakley