Git基本操作¶
クローン(リモートからコピーを作る)¶
git clone git@server:/path/to/repo.git
実行後、repo というフォルダが作成され、その中にリポジトリの内容がコピーされます
既存のブランチを見る¶
git branch # ローカルのブランチ
git branch -r # リモートのブランチ
既存のリモートブランチに切り替える場合¶
git checkout -b your-branch-name origin/your-branch-name
変更を確認¶
git status
ステージに追加(追跡対象に)¶
git add main.cpp # 個別に追加
git add . # 全部まとめて追加
コミット(ローカル履歴に記録)¶
git commit -m "機能追加: メイン処理を実装"
最新の情報だけ反映(安全)¶
git fetch --prune --tags
--prune:リモートで削除されたブランチの追跡ブランチ(例:origin/old-feature)をローカルからも掃除します
--tags:すべてのタグを取得します
git log --oneline --graph --decorate --all
「hogeブランチ が main にマージ済みかどうか」の判定方法
その中に「Merge branch 'feature/hoge'」といったメッセージがあれば、マージ済み
git log main --merges --oneline
「現在いるローカルブランチ」と「origin/main」のファイル差分を表示
git diff origin/main
リモートにプッシュ(アップロード)¶
git push origin your-branch-name
origin:リモートリポジトリの名前(通常は origin のまま)
上流(upstream)が未設定の場合
The current branch hoge has no upstream branch.
のようなエラーが出る
→ 一度でも上流設定を済ませれば、その後は git push だけでOK
git push -u origin your-branch-name
あるいは
git push -u origin HEAD # 今いるブランチ名を自動で使う
2回目以降¶
git push # もう -u は不要。普通に通る
git pull --rebase # 追従時
他の人の更新を取り込む(プル)¶
git pull origin your-branch-name
マージ¶
例: feature ブランチを main に取り込む(featureが消えてmainが残る)
git checkout main
git merge feature
※リモートの最新状態を知りたいなら、まず git fetch が必要
git fetch¶
リモートの最新状況を取得してローカルに記録するだけ(作業中ブランチは一切触らない)
リモート追跡ブランチ(例:origin/main, origin/feature/hoge)が更新される
ワーキングツリー/現在のブランチは変化なし
安全に「最新を観察」できる
git pull¶
= git fetch + 現在のブランチを更新(マージ or リベース)
デフォルトは fetch後に「マージ」
設定しだいで fetch後に「リベース」 へ変更可能
作業中のブランチに変更が入りうる(コンフリクトも起きうる)
git pull は「現在のブランチ」しか更新しない
まとめ¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|