Git 必須チートシート:コマンド、ワークフロー、ベストプラクティス
Git は、世界で最も広く使用されているバージョン管理システムです。個人開発者であっても、大規模なチームの一員であっても、Git をマスターすることは、コード履歴の管理と効果的なコラボレーションに不可欠です。
一般的な Git コマンドとワークフローのクイックリファレンスとして、このチートシートを活用してください。
1. 基本的なワークフロー
変更を加え、リポジトリに保存するコアサイクル。
| コマンド | 説明 | 例 |
|---|---|---|
git init |
ローカルに新しい Git リポジトリを初期化する | git init |
git clone |
リモートリポジトリのコピーを作成する | git clone [url] |
git add |
次のコミットのために変更をステージングする | git add . (すべて追加) |
git commit |
ステージングされた変更を履歴に保存する | git commit -m "feat: login" |
git status |
作業ディレクトリの状態を表示する | git status |
git push |
ローカルのコミットをリモートにアップロードする | git push origin main |
git pull |
リモートから変更を取得してマージする | git pull origin main |
git fetch |
リモートから変更をダウンロードする(マージしない) | git fetch origin |
2. ブランチとマージ
ブランチを使用すると、異なる機能や修正を分離して作業できます。
- ブランチ作成:
git branch [name] - ブランチ切り替え:
git checkout [name](またはgit switch [name]) - 作成と切り替え:
git checkout -b [name] - ブランチマージ:
git merge [name]([name] を現在のブランチにマージ) - リベース:
git rebase [name](コミットを [name] の先端に再適用) - ブランチ削除:
git branch -d [name]
3. 変更の取り消し
間違いを修正したり、以前の状態に戻したりする方法。
- コミット打ち消し:
git revert [commit-hash](変更を打ち消す新しいコミットを作成) - リセット (Soft):
git reset --soft HEAD~1(コミットを取り消し、変更をステージングに残す) - リセット (Hard):
git reset --hard HEAD~1(コミットを取り消し、変更も削除する!注意) - スタッシュ:
git stash(未コミットの変更を一時的に隠す) - スタッシュ戻し:
git stash pop(隠した変更を戻す)
4. 検査とデバッグ
履歴の表示やバグの発見のためのツール。
| コマンド | 説明 |
|---|---|
git log |
コミット履歴を表示する |
git diff |
コミット間または作業ツリーの差異を表示する |
git blame [file] |
ファイルの各行を誰が変更したかを表示する |
git show [commit] |
特定のコミットの詳細を表示する |
git bisect |
二分探索を使用してバグを導入したコミットを特定する |
よくある質問 (FAQ)
Q: Merge (マージ) vs Rebase (リベース):どちらを使うべきですか?
A: Merge は新しい「マージコミット」を作成し、完全な履歴と時系列を保持します。Rebase はコミットをターゲットブランチの先端に移動させることで履歴を書き換え、クリーンで線形な履歴を作成します。経験則: 公開されているブランチではリベースせず、プッシュ前のローカルな整理に使用してください。
Q: マージコンフリクトを修正するにはどうすればよいですか?
A: コンフリクトが発生すると、Git がファイルをマークします。1. ファイルを開き、<<<<<<<、=======、>>>>>>> を探します。 2. 必要なコードを残すように編集します。 3. git add [file] を実行します。 4. git commit を実行します。
Q: "detached HEAD" (分離された HEAD) とは何ですか?
A: ブランチではなく、特定のコミットやタグをチェックアウトした状態を意味します。どのブランチにも乗っていない状態です。新しいブランチを作成せずに別の場所に移動すると、新しいコミットは失われます。変更を保存するには git checkout -b new-branch-name を実行してください。
Q: .gitignore のベストプラクティスは何ですか?
A: 環境変数 (.env)、ビルド成果物 (dist/、build/)、依存関係フォルダ (node_modules/)、OS 固有のファイル (.DS_Store) は常に無視してください。使用している言語やフレームワークに適した公式テンプレート(GitHub など)を使用することをお勧めします。
Tool3M の関連情報
- ホーム: 開発効率を高めるためのツールやリファレンスをもっと見つけましょう。