Git入門:リポジトリの初期化とクローン
git initとgit cloneの使い分けを学び、最初のコミット前にリモート、ブランチ、ユーザー情報、無視ファイルを確認する方法を解説します。
Git入門:リポジトリの初期化とクローン
リポジトリの初期化とクローンは、Gitを使い始めるための2つの基本的な方法です。既存のフォルダをGitリポジトリにするか、既存のリポジトリをコピーしてファイルと履歴を操作できるようにします。
これらのコマンドはシンプルに見えますが、最初に行う選択がリモート、ブランチ、無視ファイル、チームのワークフローに影響します。クリーンなセットアップは後々の混乱を防ぎます。
Gitリポジトリの構成
Gitリポジトリは、プロジェクトフォルダ内に隠しディレクトリ.gitが含まれているものです。この.gitディレクトリには、コミット履歴、ブランチ参照、リモート情報、設定、Gitの内部オブジェクトデータベースが保存されています。
通常、.gitファイルを手動で編集することはありません。Gitコマンドを使用すると、Gitが内部データを自動的に更新します。
フォルダがすでにリポジトリかどうかを確認するには、次のコマンドを実行します:
git status
Gitがフォルダはリポジトリではないと表示した場合、初期化できます。ブランチ、変更されたファイル、またはクリーンなワーキングツリーが表示された場合、Gitはそのフォルダをすでに追跡しています。
3つの一般的な領域を理解すると役立ちます:
- ワーキングツリー:表示および編集できるファイル。
- ステージングエリア:次のコミットのために選択された変更。
- リポジトリ履歴:Gitがすでに記録したコミット。
リポジトリを初期化またはクローンすると、Gitはこれらの要素を設定し、コミットを開始できるようにします。
新しいリポジトリの初期化
git initは、まだGitで追跡されていないローカルプロジェクトフォルダがある場合に使用します。
フォルダを作成して初期化します:
mkdir my-app
cd my-app
git init
Gitは隠しディレクトリ.gitを作成します。これでファイルを追加し、最初のコミットを行えます:
echo "# My App" > README.md
git add README.md
git commit -m "Add README"
デフォルトブランチをmainにしたい場合、新しいリポジトリを作成する前にグローバルに設定できます:
git config --global init.defaultBranch main
または、初期化後に現在のブランチをリネームします:
git branch -M main
実際のプロジェクトでは、最初の大きなコミットの前に.gitignoreを作成します。これにより、依存関係フォルダ、ビルド出力、ログ、ローカルの機密情報が履歴に入るのを防ぎます:
node_modules/
dist/
.env
*.log
一度ファイルがコミットされると、後で.gitignoreに追加しても履歴から削除されません。そのため、初期の無視ルールが重要です。
リポジトリをホスティングサービスに公開する予定がある場合、まずそこで空のリモートリポジトリを作成し、次に接続します:
git remote add origin [email protected]:example/my-app.git
git push -u origin main
-uオプションは上流追跡を設定します。その後、単純なgit pushとgit pullで使用するリモートブランチがわかります。
既存のリポジトリのクローン
git cloneは、リポジトリが別の場所にすでに存在する場合に使用します。クローンはプロジェクトファイル、履歴、リモート設定をコピーします。
基本的なコマンドは次のとおりです:
git clone [email protected]:example/my-app.git
Gitはリポジトリ名に基づいてフォルダを作成します。異なるローカルフォルダ名を指定するには、末尾に追加します:
git clone [email protected]:example/my-app.git worktree-app
クローン後、フォルダに移動して確認します:
cd worktree-app
git status
git remote -v
git branch
デフォルトでは、リモートは通常originという名前です。この名前は慣例であり、特別なものではありません。これは、Gitがフェッチとプッシュに使用するURLを指します。
HTTPSまたはSSHのクローンURLのいずれかが表示される場合があります。HTTPSは特に公開リポジトリで簡単に始められます。SSHはキーを使用し、適切に設定されていればパスワードプロンプトを繰り返さないため、日常の開発で一般的です。
大きなリポジトリの場合、浅いクローンを使用することもあります:
git clone --depth 1 https://example.com/repo.git
これにより、最近の履歴のみがダウンロードされます。CIジョブや簡単な確認には便利ですが、古いコミット、タグ、完全な履歴が必要なコマンドを制限する可能性があります。通常の開発では、完全なクローンが通常は適しています。
リポジトリがサブモジュールを使用している場合、次のようにクローンします:
git clone --recurse-submodules [email protected]:example/platform.git
または、クローン後に初期化します:
git submodule update --init --recursive
サブモジュールはリポジトリ管理の別のレイヤーを追加するため、変更を加える前にプロジェクトのセットアップドキュメントを読んでください。
セットアップ後の一般的な最初の確認
初期化またはクローン後、コーディングを始める前にいくつかの確認を実行します。これらは設定ミスを早期に発見するのに役立ちます。
ユーザー情報を確認します:
git config user.name
git config user.email
これが仕事用リポジトリの場合、メールが会社のアカウントと一致していることを確認します。ローカルで設定できます:
git config --local user.email "[email protected]"
リモートを確認します:
git remote -v
フェッチとプッシュのURLが期待するリポジトリを指していることを確認します。誤ってフォークや個人ミラーにプッシュすると時間を無駄にする可能性があります。
現在のブランチを確認します:
git branch --show-current
リポジトリをクローンした場合、ブランチを作成する前にREADMEやコントリビューションガイドを読んでください。多くのチームはfeature/ticket-123-short-descriptionやfix/login-timeoutのようなブランチ名を期待します。
最初のコミットの前に、無視ファイルを確認します:
git status --ignored
これは、ビルドアーティファクトやローカルの機密ファイルがコミットされようとしていないことを確認する簡単な方法です。
助けを求めるタイミング
どのリモートURLを使用すべきか、フォークとメインリポジトリのどちらをクローンすべきか、サブモジュールの扱い方がわからない場合は、チームメイトやリポジトリメンテナーに助けを求めてください。
また、間違ったディレクトリでGitを初期化した場合も一時停止すべきです。例えば、ホームフォルダでgit initを実行すると、Gitが数千の無関係なファイルを認識する可能性があります。ランダムに削除を始めないでください。.gitがどこに作成されたかを確認し、必要な履歴が含まれていないと確信できる場合のみ、誤ったリポジトリメタデータを削除してください。
Gitを始めるには、主にクリーンな習慣が重要です。新しいローカルプロジェクトにはgit init、既存のリポジトリにはgit cloneを使用し、本格的な作業を始める前にブランチ、リモート、ユーザー情報、無視ファイルを確認してください。