Gitの使い方まとめ
git rm --cached (ファイルパス)
指定したファイルがステージングエリアから削除され、Gitの追跡対象から外れます。
この操作をコミットしてリモートリポジトリにプッシュすると、そのファイルはリモートリポジトリからも削除される。
git reset (ファイルパス)
ステージングエリアからファイルを削除するが、Gitの追跡対象から除外しないようにするには、git resetコマンドを使用します。これにより、ファイルの変更をステージングエリアから取り除きますが、ファイル自体は引き続き追跡されます。
git update-index --assume-unchanged (ファイルパス)
指定したファイルの監視を無視する
git update-index --no-assume-unchanged (ファイルパス)
指定したファイルの監視無視を解除する
git ls-files -v | grep '^h'
監視を無視するファイル(assume-unchangedフラグが設定されているファイル)を確認する
git log --oneline -n (数字)
ログをワンラインでn件表示する
git log --oneline -n (数字) (ファイルパス)
特定のファイルのログをワンラインでn件表示する
git show --name-status ハッシュID
指定コミットで追加/変更/削除したファイルのファイル名を表示
git cherry-pick ハッシュID
指定したコミットのみ取り込む。
git cherry-pick ハッシュID ハッシュID
にょうに複数のコミットを一度に指定可
git reset --hard HEAD
commitした直後の状態に戻す。「ワーキングツリー」「ステージング」を元の状態に戻す。
ただしUntrackedは対象外。Untrackedファイルを含めてcommit直後の状態に戻したい場合は、先にgit add.
してから上記コマンドを実行する
git reset --mixed HEAD
「ステージングだけ」commitした直後の状態に戻す。
git reset --hard HEAD^
直前のコミットを取り消し。この時、「ワーキングツリー」「ステージング」も削除される。
^ や ~ をつけることで直前のコミットを表すことができる : HEAD^ 、 HEAD~
git reset --soft HEAD^
直前のコミットを取り消しが、「ワーキングツリー」「ステージング」から削除しない。
git reset --hard ORIG_HEAD
git resetをなかったことにする
git checkout HEAD -- (ファイルパス)
特定のファイルだけcommitした直後の状態に戻す。
ファイルパスの前と--の間は空白。
git merge (ブランチ名)
別ブランチのコミットをマージする
削除
git branch -d (ローカルブランチ名)
ローカルのブランチを削除
git push origin --delete (リモートブランチ名)
リモートのブランチを削除
git status
コマンド
Your branch is ahead of 'origin/xxxxx' by n commits.
リモートリポジトリに反映していない、ローカルのリポジトリの変更がn個あるよ。
スタッシュ
git stash
commit前の変更をスタッシュに退避する
git stash save "任意のメッセージ"
commit前の変更をステージングも一緒に退避
git stash list
スタッシュに退避した変更を一覧で確認する
stash@{0}: WIP on test: xxxx
stash@{1}: WIP on commit-sample: xxxx
git stash apply stash@{0}
スタッシュに退避した変更をブランチに反映する
git stash drop stash@{0}
スタッシュに退避した変更をスタッシュから削除する
Discussion