我有几个git项目,我想每天(例如早上)获取并结账到最后一次提交(如果当然没有本地更改)到分支" origin / dev" (例如,它可能不是主分支)。那么如何对目录中的所有项目执行此操作?
答案 0 :(得分:3)
如何对目录中的所有项目执行此操作?
一种方法是(在单独的本地目录中进行实验):
git submodule update --recursive --remote
:将从每个子模块的origin / dev获取和签出最新内容。请注意,目录中的本地仓库充当这些子模块的“父仓库”,并且完全是本地的:无需推送该仓库。它只是受益于git 1.8.2 +(2013年3月)中引入的 submodule tracking branch feature 。
你的git项目repos可以完全忽略它们是父目录repo的子模块。
在一个命令中,您触发origin/dev
的最新提交的提取+结帐,以便所有您的git项目回购。
答案 1 :(得分:3)
如果您使用的是* 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
答案 2 :(得分:0)
参加聚会可能会比较晚,但是I wrote a tool for Windows and macOS会自动获取多个存储库(和其他功能):
答案 3 :(得分:0)
如果您使用的是zsh,则可以使用https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git-auto-fetch:
在git初始化目录中工作时,自动从所有远程获取所有更改。
只需添加到plugins
:
plugins=(... git-auto-fetch)