【问题标题】:Multiple git pull in one folder containing multiple repository [closed]多个git拉入一个包含多个存储库的文件夹[关闭]
【发布时间】:2012-10-31 12:04:47
【问题描述】:

我正在使用 ubuntu,我有一个文件夹 gitrepos,其中有许多来自 github 的多个 git repos 的克隆。

我想要一个脚本,它可以自动在我所有的 repos 中执行 git pull。

[gitrepos]
  [repo1]
  [repo2]
  [repo3]
    ...

我想要一个脚本从所有 repox 中执行 git pull
请注意回购名称不同。

任何可用于此的 shell 或 py 脚本?

【问题讨论】:

  • 请通过发布一些您已应用于问题的properly formatted 代码来改进您的问题。
  • 我认为这个问题不应该结束,我遇到了完全相同的问题。没有代码可以贴,他的问题更多是如何管理多个git仓库,我觉得很清楚
  • 按照 opqdonut 的建议签出“先生”。步骤 1) 下载 mr 并将其添加到您的路径 2) 导航到每个 git repo 并输入“mr register” 3) 输入 mr update 它将对您的所有 repos 执行 git pull。超级好用,好问题
  • for d in *; do pushd $d; git pull; popd; done

标签: git shell github


【解决方案1】:

看看mr,这个工具正是为此而生的。

【讨论】:

  • 很棒的工具。对我来说效果惊人!我现在可以在一行中更新我的团队正在处理的所有 34 个存储库:“mr update”
  • 这正是我想要的!
  • apt install myrepos -> 在每个存储库中运行 mr register -> mr update
【解决方案2】:

这行得通:

来自 ~/gitrepos:

for REPO in `ls`; do (cd "$REPO"; git pull); done;

从任何地方:

for REPO in "`find ~/gitrepos -maxdepth 0 -type d`"; do (cd "$REPO"; git pull); done;

【讨论】:

  • 不要在 find 的输出上使用 for 循环,您可以这样做:find ... -exec sh -c 'cd $0 && git pull' {} \;
  • ls * 从我的 ~/git/ 文件夹运行时似乎列出了 repo 子目录。可能不是谷歌人想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
相关资源
最近更新 更多