add を取り消す
git add の取り消し方法と、関連コマンドまとめ | WWWクリエイターズ
$ git reset .
add する前の変更を取り消す
特定のファイルの変更を取り消す
$ git checkout <ファイル名>
特定のディレクトリ以下の変更を再起的に取り消す
$ git checkout <ディレクトリ名>
全てを元に戻す
$ git checkout .
ブランチを作成
新規ブランチを造って、チェックアウト
$ git checkout -b <新規ブランチ名>
現在のブランチから新規ブランチが作成される
###リモートのブランチにチェックアウト(ローカルに対応するブランチを新規作成)
$ git checkout -b <新規ブランチ名> <リモートのブランチ名>
ブランチを削除
マージされているブランチを削除
$ git branch --delete <削除するブランチ名>
$ git branch -d <削除するブランチ名>
マージされていなくても変更がなければ削除できる。
マージされていないブランチを削除
$ git branch -D <削除するブランチ名>
リモートのブランチを削除
$ git branch -d <削除するローカルブランチ名>
$ git push --delete <削除したローカルに対応するリモートブランチ>
マージする
Non Fast-Forward
でマージする
$ git merge --no-ff <マージするブランチ>
Fast-Forward
でマージする
$ git merge --ff <マージするブランチ>
Non Fast-Forward
とFast-Forward
の違い
【git】分かりやすく!mergeは「合流」、rebaseは「付け替え」! - NullNote
Fast-ForwardとNon Fast-Forwardの違いは?
ずばり、マージしたというコミットが残るか残らないか、です。
Non Fast-Forward
・・・履歴が残る
Fast-Forward
・・・履歴が残らない
基本的にはNon Fast-Forward
でマージする。
スタッシュする(変更を一時的に保存する)
untrackファイル(gitで追跡していないファイル)も含めて全てスタッシュ
$ git stash save -u
保存しているスタッシュの一覧を確認する
$ git stash list
スタッシュの内容を確認
git diff stash@{0}
ファイルを指定して確認
git diff stash@{0} hoge.txt
スタッシュからファイルの変更を取り出す
最後にスタッシュした変更を取り出し、取り出したスタッシュを削除する
$ git stash pop
stashから、特定のファイルの内容のみ取り出す
git checkout stash@{[番号]} [ファイル名]
ログを確認する
$ git log
$ git log --oneline
ログをグラフで確認する
$ git log --graph
$ git log --graph --oneline
リベース(Gitの履歴を書き換える)
現在のブランチの履歴を変更
git rebase <親にしたいブランチ>
リベースを中止
git rebase --abort
誤ってリベースしてしまった Git のコミットを元に戻す方法 - yu8mada
変更の確認
addしたファイルの変更を確認する
$ git diff --cached
fetch
全てのリモートブランチをfetch
$ git fetch --all
リモートで削除されたブランチをローカルからも削除する
$ git fetch -p
push
リモートレポジトリ上の同名のブランチにpush
git push
pushするリポジトリを明示的に指定
git push origin master
リモートブランチを上書きするpush
rebaseした時など、リモートと履歴が違う場合、リモートブランチの履歴を書き換える
git push -f
revert(コミットを取り消す)
特定のコミットを取り消すコミットを行う
$ git revert <commit>
一部のファイルの変更のみを取り消したい
$ git revert <commit> -n
revertを行うがコミットはしない
取り消したいファイルのみを選択することができる
pull
$ git pull
pullの取り消し
pullに成功した場合の取り消し
$ git reset --hard HEAD@{1}
$ git reset --hard HEAD^
pullに失敗(コンフリクト)した場合の取り消し
$ git merge --abort
ローカルをリモートの状態にリセット
まだpushしていないコミットなどは削除されてしまうので注意
git reset --hard <リモートのブランチ>を行ってもコミットはそのブランチから見えない状態になるだけで削除されません。
コマンド実行直後ならgit reset --hard orig_headで元のコミットを見るように戻せますし、しばらく後でもgit reflogでコミットIDを調査して元に戻すことが出来ます。
$ git reset --hard <リモートのブランチ>
commitを1つにまとめたい(rebase)
rebase -i でコミットをまとめる - Qiita
[Git] rebase コマンドで複数のコミットを 1 つにまとめる | Developers.IO