
Git CLIを活用する
Git CLI コマンド
以下は基本的なGitファイル操作に関するコマンドの説明です。
- git init: 新しいGitリポジトリを初期化します。
- git clone: リモートリポジトリからローカルにコピーを作成します。
- git add: ファイルをステージングエリアに追加します。
- git add filename: 指定したファイルをステージングエリアに追加。
- git add .: すべての変更されたファイルをステージングエリアに追加。
- git commit: ステージングエリアに追加された変更をコミットします。
- git commit -m “Commit message”: コミットメッセージを指定してコミット。
- git status: 現在のリポジトリのステータスを表示します。変更されたファイルやステージングエリアの状態を確認できます。
- git log: コミット履歴を表示します。コミットのハッシュ、著者、日付、メッセージなどの情報が表示されます。
- git branch: ブランチの一覧を表示します。現在のブランチには*が付きます。
- git checkout: ブランチの切り替えやコミットの復元に使用します。
- git checkout branchname: 指定したブランチに切り替え。
- git checkout -b newbranch: 新しいブランチを作成し、それに切り替え。
- git merge: ブランチのマージに使用します。別のブランチの変更を現在のブランチに統合します。
- git pull: リモートリポジトリから変更を取得して、ローカルリポジトリを更新します。
- git push: ローカルの変更をリモートリポジトリにプッシュします。
- git remote: リモートリポジトリを管理するためのコマンド。
- git remote add origin
: リモートリポジトリを追加します。 - git fetch: リモートリポジトリから変更をフェッチしますが、現在のブランチにはマージしません。
- git reset: コミットのリセットやワーキングディレクトリの変更の取り消しに使用します。
- git reset HEAD filename: 指定したファイルのステージングエリアからの取り消し。
- git reset —hard commit: 指定したコミットまでリセット。
- git restore: ファイルを前のコミット状態に復元します。変更を元に戻す際に使用します。
- git rebase: コミットの歴史を改変します。他のブランチの変更を取り込んだり、コミットをまとめたりする際に使用します。
- git rm: ファイルをリポジトリとワーキングディレクトリから削除します。git rm filenameで使用。
- git mv: ファイルの名前を変更または移動します。git mv old_filename new_filenameで使用。
- git stash: 現在の変更を一時的に一時保存します。他のブランチに切り替える前に使用できます。
- git cherry-pick: 特定のコミットを別のブランチに適用します。指定したコミットを現在のブランチに取り込むために使用します。
- git revert: 特定のコミットを取り消す新しいコミットを作成します。過去のコミットを修正する際に使用します。
- git bisect: バイナリサーチを使用してバグを特定するためのコマンド。バグが導入されたコミットを特定するのに役立ちます。
- git blame: 各行の変更がどのコミットによって行われたかを表示します。ソースコードの履歴を調査するのに便利です。
- git search: リポジトリ内でコミットやコードを検索します。キーワードに基づいて適合するコミットを表示します。
- git show: 特定のコミットの詳細を表示します。変更内容やコミットメッセージを確認できます。
- git log (with options): コミット履歴を詳細に表示するために使用されるコマンドです。さまざまなオプションを指定して表示形式や範囲をカスタマイズできます。
- git reflog: ブランチやHEADの移動、操作の履歴を表示します。誤ってコミットを削除したり、リセットした場合に便利です。
- git diff: 変更内容を表示します。特定のコミットとの差分や、現在の変更とステージングエリアの差分を確認できます。
- git switch: ブランチの切り替えを行います。異なるブランチに移動するために使用します。
- git co-authors: 複数の共著者を指定してコミットします。著者情報を柔軟に管理するためのコマンドです。
- git history: リポジトリの歴史を表示します。コミットの一覧や変更履歴を確認できます。
- git squash: 複数のコミットを1つにまとめます。履歴を整理するために使用され、不要な細かいコミットを1つにまとめます。
- git stash: 現在の変更を一時的に一時保存します。他のブランチに切り替える前に使用できます。
- git clean: ワーキングディレクトリから未追跡のファイルやディレクトリを削除します。注意が必要で、失敗するとデータが完全に失われる可能性があります。
- git tag: リリースや重要なコミットにタグを付けるために使用します。バージョン管理やリリースのトラッキングに便利です。
- git cherry-pick: 一方のブランチに存在するが他方のブランチにないコミットを表示します。ブランチ間の差異を確認するのに使用されます。
Git 設定ファイル
- .gitignore: 特定のファイルやディレクトリをGitのトラッキング対象から除外するための設定ファイル。.gitignoreファイル内に無視したいパターンを指定します。
- .gitattributes: ファイルの属性を設定し、Gitの動作を制御するための設定ファイル。
- .gitconfig: Gitの設定ファイルで、ユーザーごとの設定を管理します。通常はユーザーホームディレクトリ(~/.gitconfig)にあり、git configコマンドを使用して編集できます。ユーザー名、メールアドレス、エイリアス、カラースキーム、コア設定など、Gitの動作に関する設定をカスタマイズできます。
- .gitmodules: Gitのサブモジュールを管理するための設定ファイルです。サブモジュールは他のGitリポジトリをプロジェクト内に組み込むための仕組みで、.gitmodulesファイルにサブモジュールの設定情報が記述されます。
- .gitkeep: 空のディレクトリをGitのトラッキング対象にするためのファイルです。Gitは通常、空のディレクトリを無視しますが、.gitkeepファイルをディレクトリ内に配置することで、空ディレクトリをコミットに含めることができます。
- .gitmessage: コミットメッセージのテンプレートを定義するための設定ファイルです。.gitmessageファイルを作成し、カスタムコミットメッセージのフォーマットやガイドラインを指定できます。これにより、一貫性のあるコミットメッセージを作成しやすくなります。
- .gitignore_global: グローバルな設定ファイルで、ユーザーが全てのGitリポジトリに適用できる.gitignoreルールを定義します。ユーザーのホームディレクトリ(~/.gitignore_global)に配置され、git config —global core.excludesfile ~/.gitignore_globalで有効にします。
- .gitconfig (リポジトリ内): リポジトリ内にある.gitconfigファイルは、そのリポジトリ内の設定をカスタマイズするためのものです。ユーザーやプロジェクトごとに異なる設定を適用したり、リポジトリに関連するカスタム設定を格納したりできます。
.git 内のファイル
- .git/hooks: Gitのフックスクリプトを格納するディレクトリです。フックは特定のGitイベント(例: コミット前、コミット後、プッシュ前など)が発生した際に実行されるスクリプトで、カスタムのビジネスロジックや自動化タスクを実行するために使用されます。例えば、コミットメッセージのバリデーションやコードフォーマットの自動修正をフックで実行できます。
- .git/info/exclude: リポジトリごとの.gitignoreのローカルバージョンです。通常の.gitignoreと同様に、無視したいファイルやディレクトリのパターンを指定できますが、このファイルはリポジトリにローカルに存在し、他のコラボレーターには共有されません。
- .git/refs: リファレンス(参照)情報を格納するディレクトリです。このディレクトリにはブランチ(.git/refs/heads)、タグ(.git/refs/tags)、リモートブランチ(.git/refs/remotes)など、Gitのオブジェクトへの参照が含まれています。ブランチやタグを作成、更新、削除すると、ここに対応するファイルが作成または更新されます。
- .git/objects: Gitのオブジェクトデータベースが格納されるディレクトリです。Gitは全てのファイルとディレクトリを圧縮してオブジェクトとして保存し、ハッシュ値によって識別します。このディレクトリにはGitの内部データ(コミット、ツリーオブジェクト、ブロブオブジェクトなど)が格納されています。
- .git/config (リポジトリ内): リポジトリごとの設定情報を格納するファイルです。通常は.git/configとしてリポジトリ内に存在します。このファイルには、リモートリポジトリのURL、ブランチの設定、リモートのエイリアスなど、リポジトリに関連する設定情報が含まれています。
- .git/logs: Gitの操作ログが格納されるディレクトリです。このディレクトリにはリモートリポジトリへのプッシュ、ブランチの移動、リファレンスの変更などの操作ログが保存されています。ログの確認や復元に使用されます。
- .git/COMMIT_EDITMSG: コミットメッセージを一時的に格納するファイルです。コミットメッセージを記述するエディタで編集され、コミットが実行されるとこのファイルからメッセージが読み込まれます。
- .git/HEAD: 現在のブランチまたはコミットを示すファイルです。HEADファイルにはリポジトリの現在の状態を示すポインタが格納されており、通常はブランチ名またはコミットIDを指します。
- .git/FETCH_HEAD: リモートリポジトリからの最新情報を格納するファイルです。このファイルにはリモートブランチの最新のコミットIDや変更情報が含まれています。git fetchコマンドの実行時に更新されます。
これらのGit関連のディレクトリやファイルは、Gitの内部で使用されたり、操作の履歴や一時データを格納したりするためのものです。通常はユーザーが直接編集する必要はありませんが、Gitの動作やリポジトリの内部構造について理解する際に役立ちます。