Rebasing
リベースを使用すると、コミット履歴を変更することで、あるブランチから別のブランチに変更を組み込むことができます。 ソース ブランチからターゲット ブランチにコミットを再生します。 これにより、よりクリーンでより直線的なコミット履歴が得られます。
例: という機能ブランチがあり feature-branch
、そのブランチから最新の変更を組み込むとします main
。 次のコマンドを使用できます。
git checkout feature-branch
git rebase main
main
これにより、ブランチ からのコミットが に適用されます feature-branch
。 競合がある場合は、リベース プロセス中に解決する必要があります。
Stashing
スタッシングを使用すると、コミットする準備ができていない現在の変更を保存し、一時的にクリーンな作業ディレクトリに戻すことができます。 これは、現在作業中の変更をコミットせずに、別のブランチに切り替えたり、別の機能で作業したりする必要がある場合に便利です。
例: 機能ブランチで作業しており、いくつかの変更を行ったが、別のブランチに切り替える必要があるとします。 次のコマンドを使用して変更を隠します。
git stash
新しいブランチに切り替えた後、次を使用して隠した変更を適用できます。
git stash apply
Git Hooks
Git Hooks
は、コミット前、コミット後、プッシュ前などの特定の Git イベントによってトリガーされるスクリプトです。これらを使用すると、ワークフローで特定のアクションを自動化したり、特定のルールを強制したりできます。
例: コミットする前にコードに対してリンターを実行するとします。 リンターをトリガーし、リンター エラーが発生した場合にコミットを防止するコミット前フック スクリプトを作成できます。
Git Submodule
Git Submodule
メイン リポジトリ内のサブディレクトリとして別の Git リポジトリを含めることができます。 これは、外部ライブラリまたはコンポーネントに依存するプロジェクトがある場合に便利です。
例: 特定のライブラリを必要とするプロジェクトがあります。 ライブラリのコードをリポジトリに複製する代わりに、それをサブモジュールとして追加できます。 こうすることで、ライブラリ コードを分離したままにし、必要に応じて簡単に更新できます。
Git Revert and Git Reset
Git Revert
元のコミットで行われた変更を元に戻す新しいコミットを作成することで、以前のコミットを元に戻します。 Git Reset
一方、ブランチ ポインタを別のコミットに移動し、コミット履歴からコミットを事実上破棄できます。
例: 最後のコミットを元に戻したい場合は、 を使用して、 git revert HEAD
最後のコミットで行われた変更を元に戻す新しいコミットを作成できます。 git reset HEAD~1
最後のコミットを完全に破棄したい場合は、ブランチ ポインタを 1 つのコミット分だけ戻すために 使用できます。
Git のこれらの高度な概念は、リポジトリを効果的に管理するための強力な機能を提供します。 これらの使用方法と適用時期を理解すると、Git ワークフローとプロジェクト管理が大幅に強化されます。