2014-09-03 104 views
1

我的计算机上有140个git回购站,我每周可以处理10-15个回收站。有没有办法知道如果忘记提交/推送我的一个项目?检查多个存储库中是否需要推送/提交

这些存储库都在相同的地方:“C:/ Projects”。

的输出会是这样的

  1. C:/项目/ LIB1 - >提交并推送需要
  2. C:/项目/ lib6 - >提交并推送需要
  3. C:/项目/ lib11 - >提交并推送所需

谢谢!

+0

我建议你实现一个简单的脚本,它可以运行命令行客户端并解析其输出或使用某些库(比如说libgit2)来执行相同的操作。什么阻止你? – Isantipov 2014-09-03 14:25:23

+1

是的,我计划那种脚本,但是我想知道是否有东西已经被编码。 – 2014-09-03 14:30:04

+0

检查http://gitslave.sourceforge.net/在存储库相互关联的情况下,它允许多个仓库操作 – CharlesB 2014-09-04 07:42:16

回答

4

一个非常简单的Python脚本会为你做它:

import glob 
import subprocess 
import os 
from os.path import dirname 


dirs = glob.glob('c:/projects/*/.git') 

for dir in dirs: 
    dir = dirname(dir) #strip .git off the end 

    os.chdir(dir) 

    status = subprocess.check_call(('git', 'status')) 

    # Check status, and potentially do this 

    subprocess.check_call(('git', 'add', '-A')) 
    subprocess.check_call(('git', 'commit', '-m', 'Automatic Commit')) 
    subprocess.check_call(('git', 'push', 'origin', 'HEAD')) 

这几乎是它。你需要在你的计算机上安装python,然后调整它。

+0

我将使用这个脚本,谢谢! – 2014-09-03 14:39:39

相关问题