Gitのコマンドをひとまとめに紹介しているサイトがあまり見当たらないので、頻繁に使用するコマンドを纏めてみました。
都度都度追加していきます。
レポジトリのURLの確認
git remote -v
ブランチの切り替え
git branch [ブランチ名]
パラメータで指定したブランチ名でブランチを作成する。
PUSHしないとこの時に作成したブランチはリモートレポジトリに反映されない。
そのため、この方法でブランチを作成した後は一旦チェックアウトし、プッシュをする必要がある。
git branch feature/hogehoge_20XXXXXX
git checkout feature/hogehoge_20XXXXXX
git push origin feature/hogehoge_20XXXXXX
git checkout -b [新ブランチ名]
こちらはブランチのチェックアウトとブランチの作成を同時に行う。
もちろんPUSHしないとリモートレポジトリには反映されない。
ブランチのチェックアウト
git checkout [ブランチ名]
git switch [ブランチ名]
パラメータで指定したブランチをチェックアウトする。switchも同じ。
ブランチ名の変更
git branch -m [元のブランチ名] [新しいブランチ名]
既存のブランチ名を変更する。
ブランチの削除(ローカル)
git branch -d [ブランチ名]
パラメータで指定したローカルに保持しているブランチを削除する。
このローカルブランチにリモートレポジトリにPUSHしていないものがある場合は削除に失敗する。
git branch -D [ブランチ名]
パラメータで指定したローカルに保持しているブランチ(ローカルブランチ)を削除する。
上記の小文字dとは違い、未コミットのものがあろうが強制的に削除する。
[tips] リモートレポジトリから削除されたブランチをローカルから削除する
$ git pull --prune; git branch --merged | grep '-' | xargs git branch -d ;
ブランチのマージ
git merge [ソースとなるブランチ]
マージしたいブランチをチェックアウトした状態で行う。
git checkout develop
git pull
git checkout master
git merge develop
チェリーピック
git cherry-pick [コミットハッシュ]
マージしたいブランチに切り替えた後に、チェリーピックしたいコミットのハッシュをパラメータに付与。
他ブランチからファイルをチェックアウトする
git checkout [ブランチ名] -- [ファイルパス]
特定のコミットからファイルをチェックアウトする
git checkout [コミットハッシュ] -- [ファイルパス]
作業の取り消し
git reset --soft HEAD^
作業中のブランチのHEADの位置をずらすことで、作業ブランチの最新のコミットを取り消す。
厳密には正しい使い方ではないが、主に自分しか使っていないブランチのPUSHしていないコミットの取り消しで使っている。
git reset
git Add コマンドでステージングに追加したものをすべて取り消す。
git revert [コミットハッシュ]
コミット済みの変更をコミットする前の状態に戻す。
git checkout .
git checkout [ファイルパス]
or git restore [ファイルパス]
ローカルの変更を最後にpullした状態まで戻す。
.
を指定した場合は変更したもの全てが対象になり、ファイルパスを指定した場合は、そのファイルだけ元に戻す。
git addしていない新規ファイルは対象外となるので、git status
をすると untracked files
に残っているのが分かる。
作業内容を隠す git stash
git stash
作業内容を隠す。
git stash list
stashしているものをリストとして表示する。
git stash drop
stashしている直近1件を破棄する。
git stash show stash@{0}
直近stashで格納したファイルのリストを表示する。
作業内容の把握
git log
コミットログを表示する。
git log --stat
コミットログを表示する際に、修正されたファイルのリストを表示させる。
git log -p
コミットされたログと修正内容を表示する。
コマンドの最後にファイルパスを追加して実行すると、そのファイルの修正内容だけ表示する。
直近どんな修正が入ったのかなーって見たい時に。
git diff
ステージにあげていないファイルの変更内容を確認する。
git diff --cached
ステージ(git addしたもの)にあげているファイルの差分を表示する。
git diff [branch]
現在のブランチとパラメータで指定したブランチとの差分を表示する。
基本作業
ファイルの追加
git add [ファイル名]
ステージングにファイルを追加する。
git add -u
レポジトリで管理している変更済みのファイルをすべてステージングに追加する。
git add .
カレントディレクトリのファイル・配下にあるディレクトリも含めて全てステージングに追加する。
git add -p
対話形式で変更分をファイルの中のブロック単位でステージングに移動する。
対話時のキーの対応
- y
stage this hunk
ブロックをステージングに移動する - n
do not stage this hunk
ブロックをステージングに移動しない - q -
quit; do not stage this hunk or any of the remaining ones
対話形式でのgit add を終了する - a -
stage this hunk and all later hunks in the file
以降の変更分をすべてステージングに移動する - d -
do not stage this hunk or any of the later hunks in the file
以降の変更分はステージングに移動しない - e -
manually edit the current hunk
変更分を編集した上でステージングに移動する - ? -
print help
ヘルプの表示
ファイルの削除
git rm [ファイル名]
レポジトリからファイルを削除する。
git rm -f [ファイル名]
レポジトリに登録しているが、gitコマンドを使わずに削除してししまうと git rm [ファイル名]
では削除できないので、 -f
オプションを付けて強制的に削除する
ファイル・ディレクトリの移動
git mv [移動元] [移動先]
ファイルやディレクトリを移動する。
変更履歴の保存
git commit
ステージングにあげたファイルをコミットする。
SVNとは異なり、git push
を行うまではリモートレポジトリには反映されない。
リモートレポジトリの変更を取り込む
git fetch
リモートレポジトリから変更の情報を取り込む。(ローカルに変更は反映しない)
git pull
リモートレポジトリからローカルに変更をダウンロードしてローカルに反映する。
基本操作 | 逆引きGit | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ