個人的リマインド用
変更を元に戻す、リモートリポジトリとのやりとり
ファイルへの変更を取り消す
git restore
ワークツリーでの変更を取り消す
git restore <ファイル名>
ステージの状態をワークツリーに反映させる
ステージでの変更を元に戻す
git restore -S <ファイル名>
最新のコミットの状態をステージに反映させる
ワークツリーの状態が変わるわけではない
直前のコミットを消す
※リモートリポジトリにプッシュしたら絶対にそのコミットの内容を修正してはいけない
git restore -s HEAD^ <ファイル名>
一気にワークツリーまで落ちる(修正した部分も元に戻る)
直前のコミットをやり直す
コミットした後に、修正忘れに気づいたとき
git commit --amend
1.修正したものをステージまで持っていく
2.git commit --amendでcommitメッセージを修正
おまけ
git log -p -n 1
ログで変更された部分の中身(-p)を最新のコミットだけ(-n 1)
リモートリポジトリについて
リモートリポジトリとは
オンライン上にあるリポジトリ(GitHub)
リモートを表示する
git remote
git remote -v 対応するURLを表示
リモートリポジトリを追加
リモートリポジトリは複数登録することができる
複数のチームそれぞれでリポジトリを持っている時とか
リモートリポジトリを新規追加
git remote add <リモート名>
git remote add tutorial https://github.com/user/repo.git
(tutorialというショートカットでurlのリモートリポジトリを登録)
リモートから情報を取得する(フェッチ)
git fetch <リモート名>
git fetch origin
流れ:リモートリポジトリからローカルリポジトリに情報を落とす(ワークツリーには入っていない)
ワークツリーに持ってくるならgit mergeをする
リモートから情報を取得する(プル)
プル→リモートから情報を取得してマージまでを一度にやりたい時(fetchとmergeを一気にやる)
git pull <リモート名> <ブランチ名>
git pull origin master
git pull (origin masterは省略可能)
フェッチとプルはどちらがいいのか
基本はfetchを使うのがいい
pullすると(リモート→ローカル→ワークツリー)自分が今いるブランチにマージされる
うっかり別ブランチにいる時やっちゃったら危険
mainにいる時だけやったらいいかも
リモートの詳細情報を表示する
git remote show <リモート名>
git remoteより詳しく(fetchとpushのurl, リモートブランチ, git pullやgit pushの挙動)
リモートを変更・削除
変更する
git remote rename <旧リモート名> <新リモート名>
git remote rename tutorial new_tutorial
削除する
git remote rm <リモート名>
git remote rm new_tutorial