自分用の逆引き対策メモとして作りました。
他にも困っている人の役に立てたら嬉しいなぁ。
間違えて必要なファイルを消しちゃった
git checkout HEAD [ファイル名]
コミット前ならこれで復活できる
masterにコミットしちゃった
■ローカルにとどまっている場合
新しいブランチを切って回避
- 新しいブランチを切って、そのまま変更を連れて行く
git checkout -b [新規ブランチ名]
- 一回コミットしてしまったブランチの方は、リセットをしてリモートと状態をあわせておく
git reset --hard
■pushしてしまった場合
- まずは深呼吸する
-
エンジニアを召喚する
- このとき、何をしていて、どんな状態になったかを端的に共有する
- そしてどうなって欲しいかを、端的に伝える
- 擬音で表現しないように気をつける
masterにマージした時にコンフリクトする
地道にコンフリクトを解消していく
- まずはdiffでコンフリクトしている箇所を確認する
git diff
- 確認して、修正対応できたら、add
git add
コミットをなかったことにしたい
git reset --hard HEAD^
すでにあるコミットをまとめたい
git rebase -i [コミットID]
作業したファイルをコミットせずに破棄したい
git reset --hard
新規作成ファイルだとこれだけじゃ消えないので注意
特定のcssや文章がどこに書いてあるのか見つけたい
git grep [検索したいワード]
便利なオプション
- 私がよく使うオプション
- -n : 対象の行番号も表示する
あとはhelp叩くか、下記参照
HEADの位置を過去に移動したい
git checkout [コミットID]
差し込み案件のbranchの扱い方
- 新しいbranchをどこからきるのかが重要
コミットし忘れた変更を、一つ前のコミットに混ぜたい
git commmit --amend
コミットメッセージにtypoを見つけたからなおしたい
git commmit --amend
branchが遅れすぎてて、うまくマージできない
git rebase [リベース先のbranch名]
次のフォースPushもも覚えるといいけど、難しいところもある。
マージ運用のメリットと一緒に、またそのうちメモ追加したい
ローカルとリモートのbranshの歴史が変わって、pushできなくなった
git push -f [リポジトリの名前] [ブランチ名]
ローカルのbranchを破棄して、リモートのbranchを再度取り込みたい
- 違うbranchに移動
- ローカルのbranchを削除
- リモートのbranchにcheckout
カレントのbranchを切り替えずに、リモートのmasterをとりこみたい(リリースされたbranchに乗っかりなおしたい)
git pull --rebase
変更したbranchの一部だけ、別のbranchに持ってきたい
git cherry-pick
一瞬違うブランチを見に行きたいけど、変更ファイルがあるよって怒られる
git stash
■stashの付属コマンドたち
1)stashしたものが複数あって、リストを見たい時
git stash list
2)戻す時
git stash apply [stashのリストナンバー]
最新だったらリストナンバーは省略可
3)リストから消す時
git stash drop [stashのリストナンバー]
最新だったらリストナンバーは省略可
4)リストから消す時その2
git stash pop [stashのリストナンバー]
最新だったらリストナンバーは省略可
stagingからおろしたい
git reset HEAD [ファイルパス]