更新文件夹中的所有存储库?

can*_*boy 11 git github bitbucket

我有一个文件夹 - 'Repos' - 它包含我感兴趣的回购.这些已经从bitbucket克隆,但我想github也可能是一个来源.

Repos
    - music-app
    - elephant-site
    - node-demo
Run Code Online (Sandbox Code Playgroud)

是否有一个git命令,我可以使用哪些步骤通过Repos中的每个文件夹,看看服务器上是否有新的提交,并下载新的东西?如果本地有新的提交,那么上传这些.

Rus*_*pov 24

试试这个:

cd repos
find . -maxdepth 1 -type d -exec sh -c '(cd {} && git pull)' ';'
Run Code Online (Sandbox Code Playgroud)


Mel*_*mna 6

对于 Windows,这应该通过命令提示符为您完成:

cd c:\repos
for /d %a in (*.*) do cd c:\repos\%a && git pull
Run Code Online (Sandbox Code Playgroud)

返回 GitHub 客户端后,您应该会看到更新。


Shi*_*hah 6

对于 Windows,我在下面的 .cmd 文件中使用。它可以很容易地扩展到做更多或其他事情:

for /d %%i in (*) do (
  pushd "%%i"
  git pull
  popd
)
Run Code Online (Sandbox Code Playgroud)


S.S*_*ker 5

使用 powershell 你可以这样做:

Get-ChildItem -Recurse -Depth 2 -Force | 
Where-Object { $_.Mode -match "h" -and $_.FullName -like "*\.git" } |
ForEach-Object {
  cd $_.FullName
  cd ../
  git pull
  cd ../
}
Run Code Online (Sandbox Code Playgroud)

这将进入每个目录并查找一个文件夹,然后在每个文件夹中.git运行。git pull