WSL 跑项目:git clone、cp、rsync 到底怎么选?
·
可以,加入 git clone、cp、rsync 区别后,帖子可以这样发:
今天踩了一个 WSL + GitHub clone 的坑,顺手整理一下。
如果在 WSL 里 git clone GitHub 项目经常超时、断开,比如出现:
RPC failed
Recv failure: Connection timed out
fatal: early EOF
不一定非要硬刚网络。
几个概念先分清:
| 命令/环境 | 是什么 | 适合什么时候用 |
|---|---|---|
git clone |
从 GitHub/Git 仓库重新下载项目 | 网络稳定、想拿一份干净仓库 |
cp |
本地普通复制 | 简单复制一个目录,适合小项目 |
rsync |
更强的本地/远程同步复制工具 | 适合大项目,可排除 node_modules、.next、dist 等目录 |
| WSL | Windows 里的 Linux 环境 | 用来跑 Linux 开发环境,不是复制命令,也不是 Git 命令 |
简单理解:
git clone 是“重新从网上下载”。cp 是“直接复制一份”。rsync 是“更聪明地复制/同步一份”。WSL 是“运行 Linux 项目的地方”。
如果 Windows 里已经有一份完整项目,更推荐复制到 WSL 自己的 Linux 文件系统里运行,比如:
~/projects/postiz-app
不太建议长期在这种路径里跑项目:
/mnt/c/Users/xxx/Desktop/xxx
虽然能用,但跑 Node 项目时可能会慢,也可能遇到文件监听、权限、依赖兼容问题。
普通复制可以用:
cp -r /mnt/c/Users/Administrator/Desktop/04GitHub/postiz-app-main/postiz-app-main ~/projects/postiz-app
但如果项目里有 node_modules、.next、dist、build 这类依赖或构建产物,更推荐用 rsync 排除掉:
mkdir -p ~/projects
rsync -av \
--exclude node_modules \
--exclude .next \
--exclude dist \
--exclude build \
/mnt/c/Users/Administrator/Desktop/04GitHub/postiz-app-main/postiz-app-main/ \
~/projects/postiz-app/
注意:源路径最后的 / 很重要,表示复制目录里的内容。
复制完后:
cd ~/projects/postiz-app
git status
pnpm install
只要源目录里有 .git,复制过去后它仍然是一个 Git 仓库。
如果之前失败的 git clone 留下了半截目录,可以确认后删掉:
ls ~/projects/postiz-app
rm -rf ~/projects/postiz-app
GitHub 网络不稳时,不要一直硬 clone。cp 能解决简单复制,rsync 更适合大项目迁移。先把 Windows 现有完整项目复制到 WSL 的 ~/projects,再在 WSL 里安装依赖和运行项目,会稳很多。
更多推荐




所有评论(0)