しばらくの間、私は次のような変わった方法で Git を使用していました。
git checkout -b feature123
- 小さな編集、コミット、繰り返し
git checkout master
git merge --squash feature123
- の出力を使用
git log --oneline
して、次のようにコミット メッセージを設定します。
機能 123 を実装し、ブローブをフラッディングする ここに長い詳細な説明があります。 f5d1b77 REFACTOR: 抽出方法 1c1346e REFACTOR: `A` を `B` に名前変更 63457deなど 884fga1 フローブ
作成したい動作の変更が簡単になるまで、リファクタリングの作業モードが特に気に入っています。行き詰まった場合は、いつでも最後のコミットにロールバックできます。動作の変更とリファクタリングは分離されており、動作の変更は単純で明白であるため、コミット履歴を読むのは簡単です。
Microsoft で Source Depot と一緒に働いていたときに、この習慣を身につけました。ブランチに対して一連の小さなコミットを行い、上流のブランチを 1 つのコミットとしてマージすることができました。+そのマージコミットをその隣に表示するGUIツール(gitkに似ています)がありました。拡大して、必要に応じて詳細を確認できます。すごくいい。Gitでそれを複製しようとしていました。
詳細にドリルダウンしたい場合、GitHubはそれらのコミットSHAを個々のコミットへのリンクにします。ただし、それは一部のコミットでのみ行われ、残りはリンクになりません。
これは明らかに Git での通常とは異なる作業方法です。ツールが改善される可能性は低く、他のプログラマーはこれを見て混乱する可能性があります。
通常、Git フィーチャー ブランチをマージした後は、それを削除できます。これを保持する理由はあまりありません。しかし、この場合、ブランチを削除すると、個々のコミットが消えてしまい、GitHub でそれらをクリックすることができなくなります。そのため、これらの古いブランチは、役に立たなくても雑然としています。どうすればそれらを取り除くことができますか?
たぶん、リベースの魔法の呪文ですか?