Git
パソコン上でファイルの変更履歴を記録・管理するソフトウェア。
THE BIG PICTURE
GitとGitHubは、名前は似ていますが役割が違います。
パソコン上でファイルの変更履歴を記録・管理するソフトウェア。
Gitで管理したファイルをインターネット上で保存・共有するサービス。
リポジトリ:Gitで管理するプロジェクトの入れ物。
ローカル:自分のパソコン上の場所。
リモート:GitHub上の場所。
コミット:変更をメッセージ付きで保存すること。
ブランチ:本体から分けた作業場所。
マージ:変更を別のブランチへ取り込むこと。
push:ローカルのコミットをGitHubへ送る。
pull:GitHubの変更をローカルへ取得する。
PR:変更を取り込んでもらう依頼。
GET READY
GitHubでアカウントを作り、メールアドレスを確認します。
コミットに「誰が変更したか」を記録するための設定です。
git config --global user.name "あなたの名前"
git config --global user.email "GitHubに登録したメールアドレス"
git config --global --listGitHub CLI(gh)は任意です。
ghを使うとターミナルからPRの作成などもできます。GitHub CLI公式サイトからインストールし、gh auth loginでログインします。
YOUR WORKSPACE
Gitコマンドは、作業するフォルダに移動してから実行します。
# 現在いる場所
pwd
# フォルダの中身
ls
# フォルダへ移動 / 1つ上へ戻る
cd フォルダ名
cd ..
MacとLinuxはほぼ同じコマンドです。WindowsはPowerShellとGit Bashで書き方が変わります。
| やりたいこと | Mac / Linux / Git Bash | Windows PowerShell |
|---|---|---|
| 現在地を確認 | pwd | Get-Location |
| 一覧を見る | ls | Get-ChildItem |
| ファイルを作る | touch sample.txt | New-Item sample.txt -ItemType File |
| フォルダを作る | mkdir images | New-Item images -ItemType Directory |
| ファイルを削除 | rm sample.txt | Remove-Item sample.txt |
| フォルダを削除 | rm -r images | Remove-Item images -Recurse |
touch sample.txt。PowerShellでは New-Item を使います。
mkdir images。親フォルダも作るときは mkdir -p。
ごみ箱に入らないことがあります。対象を確認してから実行します。
UNDERSTAND THE CYCLE
ステージングとは、次のコミットに入れる変更を一時的に選んでおくことです。
エディタで変更した直後
コミット前の確認ボックス
パソコン内に保存された履歴
チームと共有する場所
git addはGitHubへのアップロードではありません。
GitHubへ送るのは、commitの後にgit pushを実行したときです。
git status
git diff
git add README.md
git diff --staged
git commit -m "説明を追加"ファイルの編集内容は残したまま、コミット対象から外せます。
git restore --staged README.md迷ったら、add後に git status と git diff --staged を確認しましょう。
WORK SAFELY
mainで直接作業せず、機能追加や修正ごとに作業用ブランチを作ります。
機能追加はfeature、修正はfixなど、目的が分かる名前にします。
git switch -c feature/add-search
# 修正の場合
git switch -c fix/button-displaygit branch で一覧、git switch main でmainへ移動。アスタリスクが現在のブランチです。SYNC YOUR WORK
GitHubの「Code」からURLをコピーします。
git clone https://github.com/ユーザー名/リポジトリ名.git
cd リポジトリ名初回だけ送信先を指定します。
git push -u origin feature/add-search
git push作業前にmainを更新する習慣をつけます。
git switch main
git pull origin maingit fetch origin は情報だけ取得し、作業中のファイルを変更しません。内容を確認してから反映したいときに使います。git init
git add .
git commit -m "最初のコミット"
git branch -M main
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin mainCOLLABORATE
「このブランチの変更をmainに取り込んでください」と依頼する機能です。
ブランチでファイルを変更
add → commit → push
GitHubでPRを作成
レビュー → 修正 → マージ
## 変更内容
- 検索ボタンを追加しました
## 確認方法
1. アプリを起動する
2. 「りんご」と入力する
3. 結果が表示されることを確認する
## 補足
- 関連Issue: #12PRの変更をmainへ取り込むこと。マージ後は git switch main と git pull origin main でローカルも更新します。
WHEN THINGS COLLIDE
同じファイルの同じ場所を複数人が変更すると、Gitがどちらを残すか判断できないことがあります。
<<<<<<< HEAD
自分の変更
=======
相手の変更
>>>>>>> maingit add 競合を解決したファイル
git commit -m "コンフリクトを解決"
git pushKEEP SECRETS SAFE
Gitで管理したくないファイルやフォルダを指定します。パスワード、APIキー、ログ、依存パッケージなどをGitHubへ送らないために使います。
# 実際の秘密情報
.env
.env.*
!.env.example
# 依存パッケージ
node_modules/
__pycache__/本物の値を入れる。GitHubへpushしない。
PORT=3000
API_KEY=実際のAPIキー項目名とダミー値だけを共有する。
PORT=3000
API_KEY=ここに設定秘密情報を誤ってpushしたら、ファイルを消すだけでは不十分。
すぐにキーやパスワードを無効化・再発行し、管理者やチームへ報告します。
git rm --cached .env。ただし、過去の履歴に残った秘密情報は別途対応が必要です。STOP AND CHECK
| 操作 | 危険な理由 | まずすること |
|---|---|---|
rm -rf フォルダ | フォルダと中身を確認なしで削除 | lsで対象を確認 |
git push --force | GitHub上の他人のコミットを上書き | 通常の git pushを使い、必要なら許可を取る |
git reset --hard | 未コミットの変更を削除 | git statusとgit diffを確認 |
git clean -fd | Git管理外のファイルを削除 | git clean -ndで予定を確認 |
git clean -fdx | .gitignoreのファイルまで削除 | 原則として実行しない |
git branch -D 名前 | 未マージのブランチも強制削除 | git branch -d 名前を使う |
git status
git branch --show-current
git remote -v
git diffどのフォルダで、どのブランチに対して、何を削除・上書きするのか分からないなら、実行せずに相談します。
SEE IT IN ACTION
実際の画面で、どこをクリックするか確認できます。画面のレイアウトはGitHubの更新で変わることがあります。













KEEP THIS HANDY
git status現在の状態git clone URL初めて取得git pull最新に更新git switch -c 名前ブランチ作成git diff変更を確認git add ファイルステージングgit commit -m "..."履歴に保存git pushGitHubへ送信git log履歴を見るgit restore ファイル未コミット変更を戻すgit revert ID公開済み変更を打ち消すgit fetch origin情報だけ取得まず git status。現在のブランチ、変更ファイル、コミット状況を確認してから次の操作を決めましょう。