我有几个我想每天获取的git项目(例如早上)和结账到最后一次提交(如果当然没有本地更改)到分支“origin / dev”(例如它可能不是主人)科)。那么如何为目录中的所有项目执行此操作?
如何为目录中的所有项目执行此操作?
一种方法是(在单独的本地目录中进行实验):
git submodule update --recursive --remote
:它将从每个子模块的origin / dev获取和检出最新的。请注意,目录中的本地repo充当这些子模块的“父repo”,并且纯粹是本地的:无需推送该repo。它正好受益于git 1.8.2+中引入的submodule tracking branch feature(2013年3月)。
您的git项目repos可以完全忽略它们是父目录repo的子模块这一事实。
在一个命令中,您将触发origin/dev
上所有git项目回购的最新提交的获取+结帐。
如果您使用的是* nix / mac,则可以使用以下bash脚本并创建cron作业/ launchdaemon任务:
#!/usr/bin/env bash
ls -d */ | while read folder; do
if [ -d "$folder/.git" ]; then
cd "$folder"
git pull # CHANGE THIS TO YOUR NEEDS
cd ..
fi
done
派对可能会迟到,但I wrote a tool for Windows and macOS会自动获取多个存储库(以及其他功能):