よく使うGitコマンド
リポジトリ
git restore, git clean
作業ディレクトリをクリーンにする
git restore . # trackedで変更済のファイルを直前のコミットの状態に戻す
git clean -xdf # untrackedなファイル、ディレクトリを削除
- -x:
.gitignore対象のファイルを含めたファイルを削除する
- -d:
untrackedなディレクトリを削除する
- -f:
強制的に削除する
ブランチ
git branch -vva
ブランチを確認する
git branch -vva
===
* main xxxxxxx [origin/main: behind 203] <LOG> # ローカルブランチ。*は現在のブランチ。
remotes/origin/HEAD -> origin/main # リモートリポジトリoriginのデフォルトブランチ
remotes/origin/main yyyyyyy <LOG>
===
git switch
ブランチを切り替える
git switch <LOCAL_BRANCH_NAME>
git switch --track
リモートブランチを追跡するローカルブランチをリモートブランチ名で作る
git switch --track <SOURCE_BRANCH_NAME>
# 例: remotes/origin/mainからブランチを作る
git switch --track remotes/origin/foo
git branch -vva
====
foo # これができる
remotes/origin/foo
====
git switch -c
リモートブランチを追跡するローカルブランチを作る
git switch -c <LOCAL_NEW_BRANCH_NAME> <SOURCE_BRANCH_NAME>
# 例: remotes/origin/mainからブランチを作る
git switch -c new_branch remotes/origin/main
git branch -vva
====
new_branch # これができる
remotes/origin/main
====
Git 2.23以前
# git branchで作る場合
git branch <LOCAL_NEW_BRANCH_NAME>
git branch <LOCAL_NEW_BRANCH_NAME> <SOURCE_BRANCH_NAME>
# git checkoutで作る場合
git checkout -b <LOCAL_NEW_BRANCH_NAME>
git checkout -b <LOCAL_NEW_BRANCH_NAME> <SOURCE_BRANCH_NAME>
git branch -d
ローカルブランチを削除する
git branch -d <LOCAL_BRANCH_NAME>
git remote -v
リモートリポジトリを確認する
git remote -v
===
origin <REMOTE_REOPSITORY_URL> (fetch)
origin <REMOTE_REOPSITORY_URL> (push)
===
git push
リモートリポジトリにpushする
git push <REMOTE_REPOSITORY_NAME> <BRANCH>
# 例
git push origin main # リモートリポジトリoriginのmainブランチにpush
git log --oneline --graph --decorate=full
コミットログを表示する
git log --oneline --graph --decorate=full
- --oneline:
1つのコミットを1行で表示する
- --graph:
グラフ表示にする
- --decorate=full:
ローカルとリモートのブランチ、タグ、HEADの位置を表示
git restore
add前の変更ファイルを巻き戻す
ステージング前の変更ファイルの変更を巻き戻す
# サブディレクトリを含むディレクトリ配下の全てのファイル巻き戻す
git restore .
# 指定のファイルを巻き戻す
git restore <FILENAME>
Git 2.23以前
# 全ての変更を巻き戻す
git checkout -- .
# 指定のファイル巻き戻す
git checkout -- <FILENAME>
git restore --staged
add済のファイルのaddを解除する
ステージ済のファイルをアンステージする
git restore --staged <FILENAME>
Git 2.23以前
git reset HEAD <FILENAME>