😸

Gitの使い方まとめ

2025/03/10に公開

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