You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Bash命令强制拉取src目录下的多个Git仓库

批量忽略本地变更并拉取Git仓库代码

方案一:用git checkout .丢弃未暂存修改后拉取

可以通过sh -c在find的-exec中串联多个Git命令,实现先丢弃未暂存修改再拉取:

find . -mindepth 1 -maxdepth 1 -type d -exec sh -c 'echo "处理仓库:{}"; git -C {} checkout .; git -C {} pull' \;
  • 说明:git checkout .仅会丢弃工作区未暂存的修改,已暂存的变更不会被处理,若存在已暂存内容,后续pull仍可能触发冲突。

方案二:用git reset --hard彻底重置后拉取(更推荐)

如果需要完全清除所有本地变更(包括已暂存内容),确保本地代码和远程完全一致,用reset --hard更稳妥:

find . -mindepth 1 -maxdepth 1 -type d -exec sh -c 'echo "处理仓库:{}"; git -C {} fetch origin; git -C {} reset --hard origin/master; git -C {} pull' \;

也可以简化为(reset --hard后pull实际冗余,仅保留fetch+reset即可):

find . -mindepth 1 -maxdepth 1 -type d -exec sh -c 'echo "处理仓库:{}"; git -C {} fetch origin; git -C {} reset --hard origin/master' \;
  • 说明:
    1. git fetch origin先拉取远程最新代码到本地远程分支
    2. git reset --hard origin/master强制将本地当前分支重置为远程master分支状态,会永久丢弃所有未提交的工作区、暂存区变更
    3. 若你的仓库默认分支是main而非master,需将命令中的master替换为main

注意事项

  • 两种方案都会永久删除本地未提交的修改,执行前务必确认这些变更无需保留
  • 若不在/src目录下执行命令,需将find中的.替换为/src

内容的提问来源于stack exchange,提问作者granduser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:02:01