2008-10-02 22 views
41

Temelde şu anda ben, sadece itin defalarca yazarak kulüpler git push mybranch to repo1, repo2, repo3Git'de tek bir komutta birden fazla depoya geçebilir miyim?

böyle bir şey yapmak istedim ve yaptım iterek için acelem varsa, sadece arka plana hepsini göndermek git push repo1 & git push repo2 &

Sadece git'un ne yapmak istediğimi yerel olarak destekleyip desteklemediğini ya da belki de orada akıllı bir betik olup olmadığını veya belki de bir şubenin birden çok uzaktan kumandaya gönderilmesi gerektiğini söyleyen yerel bir repo yapılandırma dosyasını düzenlemenin bir yolu olup olmadığını merak ediyorum.

cevap

79

.

[remote "public"] 
    url = [email protected]:kch/inheritable_templates.git 
    url = [email protected]:projects/inheritable_templates.git 

Artık “git push public” diyebilirsiniz anda her iki repo itmek: .git/config yılında böyle bir şey koydu.

+2

Güzel ipucu. Not, bu sadece itme için çalışır. Getirmek için sadece ilk url girişini kullanır gibi görünüyor. Ayrıca, bu çoklu uzaktan kumandada bir şubeyi hedefleyebilirsiniz. Böylece, "' branch "master'ınıza böyle bir şey eklerseniz uzak ad olmadan" git pull "yapabilirsiniz. remote = public' – studgeek

+0

Teşekkür ederim, meh hayat kurtarır! –

10

Yaptığım şey, ev dizinimde, ittiğim tek bir depo var. Bu depodaki güncelleme sonrası çengeli daha sonra diğer herkese açık konumlara iter veya rsyncs. İşte

benim kanca/sonrası güncelleme: Sen git remote komut kontrol ettim bu son maruz görünmedi rağmen GIT'de her remote birkaç URL içerebilir

#!/bin/sh 
# 
# An example hook script to prepare a packed repository for use over 
# dumb transports. 
# 
# To enable this hook, make this file executable by "chmod +x post-update". 

# Update static info that will be used by git clients accessing 
# the git directory over HTTP rather than the git protocol. 
git-update-server-info 

# Copy git repository files to my web server for HTTP serving. 
rsync -av --delete -e ssh /home/afranco/repositories/public/ [email protected]:/srv/www/htdocs/git/ 

# Upload to github 
git-push --mirror github 
+0

bu iyi. git-update-server-info bilgisini paylaşmak veya açıklamak ister misiniz? – kch

+0

Yanıta eklediğim gibi: git-update-server-info, git istemcileri tarafından git komutuna değil, HTTP üzerinden git dizinine erişen bazı statik bilgi dosyalarını yazar. Daha fazla bilgi için aşağıya bakın: http://www.kernel.org/pub/software/scm/git/docs/git-update-server-info.html –