65
76

More than 3 years have passed since last update.

Gitよく使うコマンド

Last updated at Posted at 2020-04-15

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-ForwardFast-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 についてまとめてみた - Qiita

現在のブランチの履歴を変更

git rebase <親にしたいブランチ>

リベースを中止

git rebase --abort

誤ってリベースしてしまった Git のコミットを元に戻す方法 - yu8mada

変更の確認

git diffの全オプション一覧 - Qiita

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を行うがコミットはしない
取り消したいファイルのみを選択することができる

【gitコマンド】いまさらのrevert - Qiita

pull

$ git pull

pullの取り消し

git pull の取り消し方法 | WWWクリエイターズ

pullに成功した場合の取り消し

$ git reset --hard HEAD@{1}
$  git reset --hard HEAD^

pullに失敗(コンフリクト)した場合の取り消し

$ git merge --abort

ローカルをリモートの状態にリセット

まだpushしていないコミットなどは削除されてしまうので注意

@culage

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

65
76
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
76