私は git を初めて使用する開発者と仕事をしています。この開発者が行ったコミットを監査する (そしておそらく拒否する) ことができるようにする git ワークフローをセットアップしたいと考えています。新規ユーザー向け)。
シナリオは次のとおりです。
master
ブランチには監査済みコードのみが含まれていますdevel
ブランチは forkmaster
ブランチによって作成されます- 開発者が
devel
ブランチで作業しており、私が監査するために彼のコードをプッシュしています - 私は彼のコードにいくつかの問題を見つけたので、
devel
ブランチでさらにコミットして問題を修正するように彼に依頼しました - コードに満足したら、
master
ブランチで開発者がコミットするチェリーピック (またはスカッシュとマージ) し、独自のコメントを追加して、開発者によって作成されたものとしてコミットをマークします。 master
開発者はブランチを自分のdevel
ブランチにマージします
このシナリオの視覚的な図を次に示します。
このシーケンスの後、開発者が他のコミットの後にブランチを再度プッシュするときに、「ミス/やり直し」シーケンス中に開発者が犯したミスが再び表示されないことを100%確実にするにはどうすればよいですか?devel
devel
最善の解決策は、開発者に自分のブランチをそのブランチに合わせてリベースするよう依頼することmaster
ですが、これは新しい git ユーザーにとって難しい作業です。
このワークフローが何らかの形で間違っている場合は、コミットをマスター ブランチにマージする前に監査できる別の方法を提案してください。
編集
友人が有望そうな方向性を提案してくれました: コミットするときの--fixup オプションです。
--fixup=<commit>
で使用するコミット メッセージを作成し
rebase --autosquash
ます。コミット メッセージは、指定されたコミットの件名に "fixup!" というプレフィックスが付いたものになります。詳細については、 git-rebaseを参照してください。
このオプションは、開発者が 2 回目と 3 回目のコミットを最初のコミットの修正として適切にマークするために使用できます。探索するための良い解決策...