自分用のチートシート
前提 WindowsPowerShellでGitをインストール済み
ローカルリポジトリ作成〜コミットまで
新規リポジトリの作成
git init
ステージングの状態の確認
git status
変更ファイルをステージング
git add [ファイル名]
ファイルの変更差分の確認
git diff
ステージングしたファイルの差分確認
git diff --staged
ステージングしたファイルを記録する
git commit -m "コミットメッセージ"
コミットメッセージの修正
git commit --amend -m "コミットメッセージ"
コミット後の確認
コミット履歴の確認
git log
**:qでlogの閲覧を終了する**
コミット内容の確認
git show [コミットID]
コミット同士の差分を確認する
git diff[コミットID]..[コミットID]
ブランチ同士の差分の確認
git diff [ブランチ名]..[ブランチ名]
リモート追跡ブランチとの差分確認する場合
git pullする前に確認
git fetch origin
git diff HEAD..origin/main
git pushする前に確認
git diff origin/main..HEAD
作業の修正
作業中の変更を前回のコミット時まで戻す
git restore [ファイル名]
ステージングを解除する
git restore --staged [ファイル名]
特定のファイルを、特定のコミット時点に戻す
git restore --source[コミットID][ファイル名]
コミットを取り消す
git reset —soft HEAD^
**—softは直前のコミットのみ取り消す**
git reset —mixed HEAD^
**—mixedはコミットとステージングを取り消す**
git reset —hard HEAD^
**—hardはコミット、ステージング、作業エリアまで取り消す**
^は何個前のHEADかを表す。^^とすれば2個前など。
~n(n個前のコミットに戻る)やコミットIDで戻りたいコミットの指定も可能。
操作履歴の確認(ミスした操作をresetするときなどに参照できる)
git reflog
コミットを取り消す
git revert [打ち消したいコミットID]
**コミットメッセージの編集後Esc→:wqで確定**
作業中のコミットしたくない内容を一時退避
git stash save
stashで保存したリストを見る
git stash list
stashの復元と削除
git stash apply stash@{0} 復元
git stash drop stash@{0} 削除
上記をまとめて実行
git stash pop stash@{0}
stash@{0}やHEAD{0}での実行でエラーになったときの対処法(windows power shell)
https://crieit.net/posts/PowerShell-Git-reset-stash参考
ブランチの作成、切り替え、マージ
ブランチを作る
git branch [ブランチ名]
ブランチの一覧を確認する
git branch
GitHubのブランチも含めて確認する
git branch -a
ブランチを切り替える(HEAD切り替え)
git switch [ブランチ名]
ブランチを新規作成して切り替える
git switch -c [ブランチ名]
変更をマージする(masterブランチから操作)
git merge [ブランチ名]
GitHubのブランチをローカルのブランチにマージしたい
git merge origin/main
コンフリクトしたら
vi [ファイル名]
で正しいコミット内容に修正する
マージ済みのブランチの一覧表示
git branch --merged [ブランチ名]
マージ済みローカルブランチの削除
git branch -d [ブランチ名]
まだマージ完了していないブランチを削除する場合は -D を使う
必要なコミットだけを取り込むチェリーピック
別のブランチから今いるブランチへ必要なコミットだけコピーしてくる
git cherry-pick [コミットID]
複数のコミットを指定する場合
git cherry-pick [コミットID①]..[コミットID②]
コミットせず作業ディレクトリいだけ変更する
git cherry-pick -n [コミットID]
マージとは別の合流リベースコマンド
①のブランチを②のブランチに合流させる
git rebase origin/[ブランチ名]① [ブランチ名]②
フォースプッシュ(リモートを無視してローカルを正として強引にプッシュを行う)
git push origin -f
リポジトリ内の検索
特定の文字列を含む箇所の検索(大文字小文字区別する)
git grep "検索したい文字列"
コミットやブランチの指定
git grep "検索したい文字列" [コミットIDやブランチ]
ファイル名のみ表示
git grep -l "検索したい文字列"
ファイル名と行番号が表示されるように設定変更する場合
git config --global grep.lineNumber true
各行にコミットした人の名前と日時を表示する
git blame [ファイル名]
Git Hubとの連携
GitHubと連携するための設定
git config --global [user.name](http://user.name) "登録したユーザー名"
git config --global [user.email](http://user.email) [登録したemail]
リモートリポジトリを追加
git remote add origin [URL]
git remote add [リモートリポジトリの呼び名] [URL]
リモートリポジトリの削除(連携を解除するだけ)
git remote rm [リモートリポジトリの呼び名]
リモートリポジトリの確認
git remote -v
リモートリポジトリに変更情報をアップロードする
git push origin [ブランチ名]
リモートリポジトリから最新の情報を取得し反映する(fetch+merge)
git pull origin [ブランチ名]
リモートリポジトリから最新の情報を取得する
git fetch origin
エイリアス設定したときWindowsPowerShellで少し手間取ったので今度それも記事に使用と思った。