ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
このエラーの概要
Windows で git checkout、git pull、git clean、git rebase 実行中にこのプロンプトが出ます:
warning: unable to unlink 'vendor/bin/phpunit': Permission denied
Unlink of file 'vendor/bin/phpunit' failed. Should I try again? (y/n)
「ファイルを削除できなかった、もう一度試すか?」と聞かれており、他のプロセスがそのファイルを開いている / ロックしていることが原因です。Linux / Mac では削除中のファイルもプロセスは保持できますが、Windows は厳格にロックを敷くため発生します。
原因の切り分け
| 原因プロセス | 具体例 |
|---|---|
| IDE / エディタ | VS Code / IntelliJ / Visual Studio / PhpStorm / Sublime |
| 言語ランタイム | node.exe (nodemon)、php.exe (artisan serve)、python.exe |
| ビルドツール | webpack-dev-server、vite、gulp、tsc --watch |
| アンチウイルス | Windows Defender、ESET、Symantec の常時スキャン |
| エクスプローラー | 該当フォルダを開いている / プレビュー |
| WSL / Docker | WSL2 / Docker Desktop がマウント中 |
| OneDrive / Dropbox | 同期中ロック |
対処1: プロンプトに答える前にロックを解除
- VS Code / IntelliJ 等のエディタをすべて閉じる(または該当ファイルのタブのみ)
- 開いているターミナルの
npm run dev/php artisan serveを停止(Ctrl + C) - エクスプローラーで該当フォルダを閉じる
- プロンプトで
yを押して再試行
対処2: ロックしているプロセスを特定
# Sysinternals handle.exe をダウンロード
# https://learn.microsoft.com/sysinternals/downloads/handle
# どのプロセスがファイルを開いているか
.\handle.exe "C:\path\to\file"
# 結果例
# node.exe pid: 12345 type: File C:\path\to\file
# code.exe pid: 67890 type: File C:\path\to\file
# 該当プロセスを終了
taskkill /PID 12345 /F
GUI で確認するなら Process Explorer:
- Process Explorer をダウンロード
- Find → Find Handle or DLL (
Ctrl + F) - ファイル名を入力 → 該当プロセスが表示される
- 右クリック → Kill Process
対処3: Git で強制的に進める
# 未追跡ファイルとディレクトリを強制削除
git clean -fd
# .gitignore のファイルも含めて削除
git clean -fdx
# 確認だけ(dry run)
git clean -fdn
# checkout を強制
git checkout -f main
# stash で逃がす
git stash --include-untracked
git checkout main
対処4: パーミッション / 読み取り専用属性
# 読み取り専用属性を解除
attrib -R "C:\path\to\file" /S
# フォルダ全体を再帰的に
attrib -R "C:\path\to\folder\*" /S /D
# ACL リセット
icacls "C:\path\to\folder" /reset /T /C
対処5: アンチウイルスの除外設定
大量ファイルの削除はアンチウイルスのリアルタイムスキャンと競合します。開発フォルダを除外すると劇的に改善します:
- Windows セキュリティ → ウイルスと脅威の防止 → 設定の管理 → 除外
- 除外の追加 → フォルダー
C:\Users\YourName\projects等を追加node_modulesやvendor配下も対象に
対処6: WSL / Docker のロック
# WSL 内でファイルを開いているプロセスがある場合
wsl --shutdown
# Docker Desktop を停止
# タスクトレイから Quit Docker Desktop
# WSL 内から Windows ファイルにアクセス中なら停止
wsl -d Ubuntu --user root
fuser -k /mnt/c/path/to/file
頻出シナリオ別の対処
| シナリオ | 典型的なロックプロセス | 対処 |
|---|---|---|
| git pull で node_modules | node.exe / esbuild.exe / vite | dev サーバー停止 |
| git checkout で vendor | php.exe (artisan serve) / php-fpm | php プロセス停止 |
| git clean で .vs / .idea | devenv.exe / idea64.exe | IDE 完全終了 |
| OneDrive 同期フォルダ | OneDrive.exe | 同期一時停止 or 開発フォルダ除外 |
| Defender スキャン中 | MsMpEng.exe | 除外フォルダ追加 |
予防策
- 開発作業前に dev サーバー / IDE を必要なものだけ起動
node_modules/vendorはアンチウイルス除外に- 大規模
git checkout前にnpm stop/php artisan serve停止 - WSL2 backend の Docker は Linux ファイルシステム配下に置く(
/home/user等) - Sysinternals Suite を
C:\tools\sysinternals等に常備
FAQ
Q: y を押し続ければいつか進む?
A: ロックが解除されれば進みますが、原因解決の方が早いです。n を押すと操作キャンセル、その後手動で対処。
Q: 管理者権限で Git を実行すれば解決?
A: 場合によります。Windows のファイルロックは権限ではなくロックの仕組み。ロックを掛けているプロセスを終了するのが正解。
Q: WSL2 で git を使えば回避できる?
A: はい。WSL2 の Linux ファイルシステム(~/projects 等)に clone すれば Linux 流のセマンティクスで動作し、このエラーは出ません。Windows 側からは \\wsl$\Ubuntu\home\user でアクセス。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- fatal: remote origin already exists.
- fatal: '~' does not appear to be a git repository
- Cannot rebase: You have unstaged changes. Please commit or stash them.
- remote: error: denying non-fast-forward refs/heads/master (you should pull first)
- error: pathspec ... did not match any file(s) known to git.
- The following untracked working tree files would be overwritten by checkout
- fatal: Not a valid object name: 'master'.
- Unlink of file 'ファイル名' failed. Should I try again? (y/n)
- Another git process seems to be running in this repository
- error: Your local changes to the following files would be overwritten by checkout:
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?