これはGitコマンドに関する個人的な備忘録です。
Gitのセットアップ
git config --global user.name "Your Name"
git config --global user.email "you[a]example.com"
git --version
まずはGitの ユーザー情報(名前とメールアドレス) を設定します。
これは、GitHubアカウントと紐づけるために必要です。
ここで利用したメールアドレスは今後自分がOSS活動等でプルリクエストを描いたりする時に残る情報になるので、注意が必要です。
新しいリポジトリの作成
mkdir my-repo
cd my-repo
git init
git init
は現在のディレクトリに新しいGitリポジトリを作成します。
.git/
フォルダが生成され、変更履歴の追跡ができるようになります。
ファイルの追跡とコミット
git status # 変更されたファイルを表示
git add <file> # ファイルをステージング
git commit -m "Message" # ステージ済みファイルをコミット
git commit -a # 修正済みファイルをステージ&コミット
git push # ローカルの変更をリモートにプッシュ
ローカル環境とリモートリポジトリの連携を理解することがかなり重要ではないかと学びながら思いました。以下はそれに関連するコマンドです:
git remote -v # リモート情報を表示
git remote show origin # 'origin' の詳細情報を表示
git fetch # リモートの変更を取得(マージなし)
git pull # フェッチ+マージ
git push # ローカルの変更をリモートへ反映
変更内容の確認
git diff # ステージ前の変更を表示
git diff --staged # ステージ済みの変更を表示
git log # コミット履歴を表示
git log -p # 各コミットの差分を表示
git log --oneline --graph # 履歴を視覚的に表示
コミットの修正や取り消し
git commit --amend # 最後のコミットを修正
git revert HEAD # 最新コミットを打ち消す新コミットを作成
git reset # ステージから外す
git checkout <file> # ファイルを最後のコミット状態に戻す
ファイル操作
git rm <file> # ファイルの削除
git mv old.py new.py # ファイル名の変更や移動
git add -p # 一部変更だけステージング
ブランチ操作
git branch # ブランチ一覧を表示
git branch new-feature # 新しいブランチを作成
git checkout new-feature # ブランチを切り替え
git checkout -b better-feature # 作成&切り替えを同時に
git merge feature # 現在のブランチにマージ
git branch -d old-branch # ローカルブランチの削除
RebaseとSquash
git rebase main # mainブランチにリベース
git rebase -i main # 対話形式でリベース(squashなど)
git commit --amend # 最後のコミットを修正
Rebase、Merge、Squashの違いについては、図解してくれているオンライン資料がたくさんあります。
この3つの違いには本当に混乱させられました…
個人的には以下の動画がわかりやすかったです。
https://youtu.be/0chZFIZLR_0?si=ZgauzdV_mKXL-9mF
読んでいただき、ありがとうございました!