ソースコード管理ツールとして Git を使っています。今のところ、私のワークフローは単純です。
- 最小限の新機能/リファクタリングについて考える
- コード化する
- HEAD で差分を確認する
- 専念
より柔軟にすることで、このワークフローを改善したいと思います。その理由は、次の状況に数回遭遇したためです。これは典型的なものだと思います。
コミット後、新しい機能を追加するために作業ディレクトリを変更し始めています。
しばらくコーディングして、この時点で作業ディレクトリの状態を A にします。ここで重要なことは、新しい機能がまだ完成していないため、作業ディレクトリはコミットする準備ができていない状態 A であるということです。
この時点で、最初にリファクタリングを実行したほうがよいことに気付きました。確かに、コード変更の過程でリファクタリングの必要性が明らかになることがあります。
ここで、HEAD からやり直して、最初にリファクタリングを行う必要があります。しかし、コード HEAD -> state A の変更を失いたくないので、基本的には次のことを行う必要があります。
- 最後のコミット後にまだ変更されていない作業ディレクトリのコピーでリファクタリングを行う
- コミットする
- 私が開始した新機能の作業をマージし、作業ディレクトリが状態 A のときに停止しました
- 新機能の作業を完了する
- コミットする
これは分岐が役立つ場所だと思いますが、正しい git コマンドを理解するのに問題があります。コミット後に作業ディレクトリが変更されたときにブランチを作成する必要があるという事実に混乱しており、これを処理する正しい方法がわかりません。
Git コマンドに関して上記のワークフローを説明する正しい方法は何ですか?