はじめに
これから実務に入るにあたって、コマンドを調べる際に効率的に調べられるようにまとめました。
Gitでよく使うコマンド
git clone
Gitリポジトリのコピー
ファイルと.gitディレクトリの両方がコピーされる。
$ git clone <リポジトリ名>
git add
変更をステージに追加する
※ステージは一部のファイルを変更するために存在する
$ git add <ファイル名>
$ git add <ディレクトリ名>
$ git add .
git commit
変更を記録する(コミット)
<わかりやすいコミットメッセージ>
1行目:変更内容の要約
2行目:空行
3行目:変更した理由
$ git commit
$ git commit -m "<メッセージ>" //エディタ立ち上がらずに記録
$ git commit -v //変更内容を確認できる
git status
現在の変更状況を確認
①ワークツリーとステージの間で変更されたファイル
②ステージとリポジトリの間で変更されたファイル
$ git status
git diff
変更差分を確認する
# git addする前の変更分
$ git diff
$ git diff <ファイル名>
# git addした後の変更分
git diff --staged
git log
変更履歴を確認する
$ git log
# 1行で表示する
$ git log --oneline
# ファイルの変更差分を表示する
$ git log -p index.html
# 表示するコミット数を制限する
$ git log -n <コミット数>
git rm
ファイルの削除を記録する
# ファイルごと削除
$ git rm <ファイル名> //ワークツリーとリポジトリのファイルの削除
$ git rm -r <ディレクトリ名>
# ファイルを残したいとき
$ git rm --cached <ファイル名> //リポジトリのファイルのみ削除
git mv
ファイルの移動を記録する
$ git mv <旧ファイル><新ファイル>
# 以下のコマンドと同じ
$ mv <旧ファイル><新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>
git remote add
リモートリポジトリ(GitHub)を新規追加する
# originというショートカットでurlのリモートリポジトリを登録
$ git remote add origin <GitHubのURL>
git push
リモートリポジトリ(GitHub)へ送信する
$ git push <ブランチ名><リモート名>
$ git push origin master
git config --global alias
コマンドにエイリアスをつける
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.br branch
$ git config --global alias.co checkout
git checkout
ファイルへの変更を取り消す
$ git checkout -- <ファイル名>
$ git checkout -- <ディレクトリ名>
# 全変更を取り消す
$ git checkout -- .
git reset HEAD
ステージした変更を取り消す
※ワークツリーのファイルには影響しない(削除されない)
$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>
# 全変更を取り消す
$ git reset HEAD .
git commit --amend
直前のコミットをやり直す
$ git commit --amend
git remote
リモートの表示
$ git remote
# 対応するリモートの表示
$ git remote -v
git remote add
リモートリポジトリを新規追加する
※リモートリポジトリは複数登録可
$ git remote add <リモート名> <リモートURL>
git fetch
リモートから情報を取得
リモートリポジトリからローカルリポジトリに情報を取ってくる
remotes/リモート/ブランチに保存
$ git fetch <リモート名>
$ git fetch origin
git pull
リモートから情報を取得してマージする
ワークツリーまで一度に反映する
$ git pull <リモート名> <ブランチ名>
$ git pull origin master
# 上記コマンドは省略可能
$ git pull
# 下記コマンドと同じ
$ git fetch origin master
$ git merge origin/master
git remote show
リモートの詳細情報を表示する
$ git remote show <リモート名>
$ git remote show origin
git remote rename
リモートを変更、削除する
# 名前の変更
$ git remote rename <旧リモート名> <新リモート名>
$ git remote rename tutorial new_tutorial
# 削除する
$ git remote rm <リモート名>
$ git remote rm new_tutorial
git branch
ブランチの一覧を表示
ブランチを新規追加
# ブランチの一覧表示
$ git branch
$ git branch -a //全てのブランチの表示
# ブランチを新規追加
$ git branch <ブランチ名>
$ git branch feature
git checkout
ブランチを切り替える
$ git checkout <既存ブランチ名>
$ git checkout feature
# ブランチを新規作成して切り替える
$ git checkout -b <新ブランチ名>
git merge
変更履歴をマージ
$ git merge <ブランチ名>
$ git merge <リモート名/ブランチ名>
$ git merge origin/master
git branch
ブランチを変更、削除する
# 変更する
$ git branch -m <ブランチ名>
$ git branch -m new_branch
# 削除する
$ git branch -d <ブランチ名>
$ git branch -d feature
# 強制削除
$ git branch -D <ブランチ名>
git rebase
リベースで履歴を整えた形で変更を統合する
GitHubにプッシュしたコミットをリベースするのはNG
git push -fはNG
$ git rebase <ブランチ名>
git pull --rebase
プルのリベース型
$ git pull --rebase <リモート名> <ブランチ名>
$ git pull --rebase origin master
プルをリベース型に設定
$ git config --global pull.rebase true
# masterブランチでgit pullするときだけ
$ git config branch.master.rebase true
git rebase -i
複数のコミットをやり直す
$ git rebase -i < コミットID>
$ git rebase -i HEAD~3
# やり直したいcommitをeditにする
edit gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
pick 84gha0d READEME修正
# やり直したら実行する
$ git commit --amend
# 次のコミットへ進む(リベース完了)
$ git rebase --continue
コミットを並び替える、削除する
$ git rebase -i HEAD~3
# コミットを削除する
pick 193054e ファイルの追加
pick 84gha0d READEME修正
# 並び替えたい順に並び替える
pick 84gha0d READEME修正
pick 193054e ファイルの追加
# コミットをまとめる
pick gh21f6d ヘッダーの修正
squash 193054e ファイルの追加
squash 84gha0d READEME修正
# コミットの分割
pick gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
edit 84gha0d READEME修正とindex修正
$ git reset HEAD^
$ git add README
$ git commit -m 'README修正'
$ git add index.html
$ git commit -m 'index.html修正'
$ git rebase --continue
git tag
タグの作成
# 注釈付きタグ
$ git tag -a [タグ名] -m "[メッセージ]"
$ git tag -a 20210730_01 -m "version 20210730_01"
# 軽量版タグ
$ git tag [タグ名]
$ git tag 20210730_01
# 後からタグ付けする
$ git tag [タグ名] [コミット名]
$ git tag 20210730_01 8a6cbc4
# タグのデータを表示する
$ git show [タグ名]
$ git show 20210730_01
# タグをリモートリポジトリに送信
$ git push [リモート名] [タグ名]
$ git push origin 20210730_01
# タグの一斉送信
$ git push origin --tags
git stash
作業を一次避難する
$ git stash
$ git stash save
# 避難した作業を確認
$ git stash list
# 避難した作業を復元
$ git stash apply
# ステージの状況も復元
$ git stash apply --index
# 特定の作業を復元
$ git stash apply [スタッシュ名]
$ git stash apply stash@{1}
# 最新の作業を削除する
$ git stash drop
# 特定の作業を削除する
$ git stash drop [スタッシュ名]
$ git stash drop stash@{1}
# 全作業を削除する
$ git stash clear
参考リンク