Git ナレッジ集
新たに無視したくなったファイルをgitignore に追加したが反映されない
Git上のキャッシュを削除する必要があります。GUIツールでは難しいため、CLIで作業をします。
- コマンドでキャッシュを削除
- commit → push
ファイル全体キャッシュ削除
git rm -r --cached .
ファイル指定してキャッシュ削除
git rm -r --cached <path>
キャッシュ削除の際、ファイルを削除しているわけではないのでご安心を。
また、pushした際に大量のremoveログが出るが、ローカルのファイルが消えたわけではないのでご安心を。
既にgit管理しているファイルを無視したい(ローカルの変更を無視する)
リモートとローカルで内容が違うファイルを持っておきたい ローカルファイルの変更を無視
git update-index --skip-worktree <path>
無視を解除
git update-index --no-skip-worktree <path>
マージの取り消し
git merge --abort
git addしたら「does not have a commit checked out」エラーが出た
.gitが2つあることが原因でした。片方を削除するとaddできました。
特定のファイル(ディレクトリ)の閲覧履歴を見たい
pathはカレントディレクトリからの相対パスでOK 削除したファイルのログも見ることができます。
git log --oneline -- <path>
新規追加・変更・削除それぞれのファイル名一覧を出したい
git diff --name-only --diff-filter=A <開始commitのハッシュ値> <終了commitのハッシュ値> git diff --name-only --diff-filter=M <開始commitのハッシュ値> <終了commitのハッシュ値> git diff --name-only --diff-filter=D <開始commitのハッシュ値> <終了commitのハッシュ値>
A:追加, M:変更, D:削除
複数のcommitをrevertしたい
git revert -n <コミット1のハッシュ値> git revert -n <コミット2のハッシュ値> git revert -n <コミット3のハッシュ値>
もし下記のようなエラーメッセージが出たらリバートするコミットを飛ばしている可能性が高いので、いちど変更をリセットし、再度HEADからrevertし直してください。
error: could not revert <コミットハッシュ>)... <コミットメッセージ> hint: after resolving the conflicts, mark the corrected paths hint: with ‘git add <paths>’ or ‘git rm <paths>’