Git の高度な概念: 強力な機能とテクニックの探求

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 ワークフローとプロジェクト管理が大幅に強化されます。