設定系
コマンド | 内容 | 補足 |
git config user.name | ユーザー名の確認 | 以下のようにオプションを付与することで対象を指定できる –local |
git config user.email | メールアドレスの確認 | 以下のようにオプションを付与することで対象を指定できる –local |
git config -l | コマンドを実行した場所で有効になっている設定項目とその設定値がすべて表示 | |
git config user.name <設定する値> | 設定の変更 | デフォルト(オプションなし)ではlocalの設定が変更される |
git remote -v | リモートのリポジトリURL確認 | |
git remote add origin <githubのURL> | ローカルのリポジトリとリモートのリポジトリURLを紐づける | |
git remote set-url origin {new url} | リポジトリのurlを変更する | |
git remote rm origin | リモートリポジトリに紐づいているURLを削除する | |
git remote set-url origin {new url} | リモートリポジトリに紐づいているURLを変更する | |
プロジェクトフォルダに移動して、以下を実行 rm -rf .git | ローカルリポジトリの削除 |
※設定の適用範囲や設定ファイル等については以下の通り
system, global, localの順に読み込まれる。例えば、systemとlocalで同じ項目が設定されている場合はlocalの値が有効になる。
種類 | 対象範囲 | 場所の例 | 備考 |
---|---|---|---|
system | システム全体(全ユーザーの全リポジトリ) | /etc/gitconfig | – |
global | 該当ユーザーの全リポジトリ | ~/.gitconfig | ホーム直下 |
local | 該当リポジトリ | repository/.git/config | リポジトリの.git 直下 |
ブランチ系
コマンド | 内容 | 補足 |
git branch | ローカルブランチ一覧 | |
git checkout <branch_name> | ブランチ移動 | |
git checkout -b <branch_name> | 新規ブランチ作成 | |
git branch –delete <branch_name> | ブランチ削除 | |
git branch -D <branch_name> | ブランチ強制削除 | |
git branch –merged <branch_name> | grep -vE ‘^\*|master$|main$|milestone$|develop$’ | xargs -I % git branch -d % | メインブランチにマージ済みのローカルブランチを全削除 <branch_name>には、メインブランチ名が入る | 長いのでエイリアスにすることをおすすめする。 |
変更内容確認
コマンド | 内容 | 補足 |
git diff | ステージングに追加(git add する)前に変更した箇所とステージングとの変更点が見たいとき | |
git diff –staged | ステージングに追加(git addした )後かつコミット前の変更点が見たいとき | |
git diff –name-only <ブランチ名> | 差分が生じたファイルの、ファイル名の一覧を表示 | |
git log | コミット履歴を表示 | |
git ls-files –others –exclude-standard | git管理外のファイル一覧 |
変更取消
git checkoutはワークツリーでの変更内容を全て元に戻すコマンドです。(ステージングから指定されたファイルを取得し、ワークツリーに反映させる)
コマンド | 内容 | 補足 |
git checkout <filename> | 指定のファイルの変更取消 | ファイルの追加または削除の取り消しはできない |
git checkout . | 全てのファイルの変更を取り消し | ファイルの追加または削除の取り消しはできない |
Untracked filesの取り消し
untracked fileとは、前回のcommitの時点では存在しなかった新たに作成したfileかつ
git add
してステージさせていないfileのことです。コマンド | 内容 | 補足 |
git clean -n | 対象外ファイルを確認(実行はされていない。) | 特になし |
git clean -f | カレントディレクトリのファイルを削除 | 特になし |
git clean -df | ディレクトリも削除 | 特になし |
ステージング系
コマンド | 内容 | 補足 |
git status | ワークツリーとステージング、ステージングとリポジトリの変更内容を確認 | |
git add . | すべてのファイルをステージングへ追加 | |
git add <filename> | 指定したファイルをステージングへ追加 | |
git rm –cached -r <filename> | 全てのファイル取り消し | 初回時のみ |
git rm –cached -r . | 特定のファイルのみ取り消し | 初回時のみ |
git reset –hard HEAD^ | 直前のcommitを取り消す | |
git reset HEAD <filename> | 指定ファイルのステージングへの追加を取り消す(2回目以降) | リポジトリから最新のコミット内容(HEAD)を取得し、それでステージングの内容を上書きする。 ワークツリー投稿一覧も元に戻したい場合はgit reset HEAD の後にgit checktout をする必要がある |
git reset HEAD | すべてのファイルのステージングへの追加を取り消す(2回目以降) | リポジトリから最新のコミット内容(HEAD)を取得し、それでステージングの内容を上書きする。 ワークツリーも元に戻したい場合はgit reset HEAD の後にgit checktout をする必要がある |
コミット系
git commit -m<message> | コミットメッセージ付きでコミットに追加する | |
git commit –amend | 直前のコミットを取り消す | 現在のステージングの内容をもとに直前のコミットを上書きする ※リモートにpushしたコミット内容は絶対に取り消してはダメ。 |
git stash -u | コミットしていない変更がある状態で上記のコマンドを実行すると、変更した部分が退避され、 ワークツリー上は差分がない状態になります。 | add したものもadd していないものもどちらも退避される。また、新規作成ファイル(追跡対象に含まれていないファイル)も退避することが可能 |
git stash list | 退避リストの一覧を確認できる | |
git stash apply stash名 | 現在チェックアウトしているブランチへ退避した変更が反映される。 変更を退避したときのブランチにも、それ以外のブランチにも戻すことが可能。 | stash名 = stash@{0}など なお、addしていた変更もaddされていない状態で戻る( |
git stash drop stash名 | 退避した特定の作業を消す | stash を使用して退避した作業を元に戻しても、退避した情報は残ったままなので、消す必要がある※以下のコマンドで、退避作業をもとに戻しつつ、退避リストから削除することも可能 git stash pop stash名 |
git stash clear | 退避したすべての作業を消す |
プッシュ
コマンド | 内容 | 補足 |
git push origin <branch_name> | 指定したリモートリポジトリのブランチにローカルリポジトリの変更を追加する | -uで次回から origin masterを省略可(初回push時に行う) git push -u origin master |
// 直前のコミットを取り消してから git reset –hard HEAD^// 強制的にPushする git push -f origin master | pushの消去 | あまりお勧めしない。 |
プル
コマンド | 内容 | 補足 |
git pull origin <branch_name> | 対象のブランチの内容が、「今いるブランチ」にmergeされる |
コメント