Git servis: Ben bu kadar basit istiyorum


139

Mercurial'ın hg servisi gibi http = üzerinden nasıl yayınlayacağımı bilmek istiyorum ! Windows / çalışma kutusunda şunu yapın:

git serve 

ve sonra Linux kutusunda SIMPLY gidin:

git clone http://project project 

bitmiş.


Svn deposunun git-svn klonunu kopyalamanın zor olduğunu biliyor musunuz? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
Bendin

Neden sadece dizüstü bilgisayar reklam kullanımı svn yüklemek değil doğrudan proje deposundan check-out? Git yeni bir sıcaklık olabilir, ama gerçekten bu durumda hayatınızı gereksiz yere karmaşık hale getiriyorsunuz gibi görünüyor.
bendin

bendin hayır ben çevre şimdi kurmak im im konuştu sevindim gibi zor olduğunu bilmiyordum ...
Setori

1
İlk olarak: dizüstü bilgisayarım bu vpn üzerinde izin verilmiyor, bu yüzden svn'ye doğrudan erişemiyorum. ikincisi: Kendi veri havuzuma bağlı kalmak istiyorum, git'i kullanmanın asıl amacı yerel taahhütleri, şubeleri ve ağrısız bir şekilde birleştirebilmek. Svn kullanarak şimdi oldukça sıkışık buluyorum.
08:22

Python yüklüyse, basit bir git instaweb -d pythonşey olabilir (Git 2.21, Şubat 2019 ile): aşağıdaki cevabımı görün
VonC

Yanıtlar:


197

Projenize gidin ve git-daemon'u aşağıdaki anahtarlarla başlatın:

cd project
git daemon --reuseaddr --base-path=. --export-all --verbose

Bu git-daemon'a geçerli dizindeki tüm projeleri sunmasını söyler (ki .git / klasörü içeren proje dizinidir). Ayrıca, kapatıp çok hızlı bir şekilde yeniden başlatırsanız aynı adresi yeniden kullanmasını söyler.

Bunu, "gitserve" gibi hatırlaması kolay bir adla toplu bir komut dosyasına koyabilirsiniz, böylece hepsini tekrar yazmanız gerekmez. Bazı yorumlarda önerildiği gibi Git'in son sürümlerinde Git yapılandırmasına bir takma ad ekleyebilirsiniz :

[alias]
    serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git

Sunucuda (Windows kutunuz) işiniz bittiğinde şunları yapabilirsiniz:

git serve

git-daemon, taşıma için git: // protokolünü kullanır, bu nedenle istemcide (Linux kutunuz) şunları yapmanız gerekir:

git clone git://123.456.789.111/ project

3
Komutu, burada açıklandığı gibi .gitconfig dosyasına takma ad olarak ekleyebilirsiniz: git.or.cz/gitwiki/Aliases#Serverepoonthespot
RFelix


8
git daemonDiğer git istemcileri tarafından uzaktan erişime izin vermesine rağmen , sağlayan Web arabiriminden yoksun olduğunu belirtmek önemlidir hg serve.
Rob Kennedy

4
.gitrc'de aşağıdaki gibi bir takma ad yapın:serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
dlamblin


14

Kendi toplu komut dosyanızı yazmak yerine gitjour kullanın . Git arka plan programının doğru bir şekilde nasıl başlatılacağını bilir ve klon URL'sini mDNS aracılığıyla yayınlar, böylece gitjour showlinux kutusunda yapabilir ve kopyalayıp yapıştırabilirsiniz.

Ayrıca gitjour ve Dr. Nic diğer benzer araçları bir bakış ile iyi bir makale , * jour nedir ve neden RailsCamp08 için katil uygulamalar vardır .


13

Şu anda iki takma ad kullanıyor - sunum ve hub. Salt okunur paylaşım için ve okuma / yazma paylaşımı için hub:

[alias]
  serve = !git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose
  hub = !git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

Ayrıca git daemon üzerinden paylaşım hakkında daha ayrıntılı bir öğretici var: http://l.rw.rw/git-daemon .


12

Depoyu bir web tarayıcısıyla göstermek istiyorsanız

Git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234

diyorlighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
Rakib

4
@syedrakib Lighttpd'nin veya apache2'nin veya başka bir şeyin kurulu olması gerekir. Şahsen git instaweb -d webrickOS X'te kullanıyorum, çünkü webrick OS X'e önceden kurulmuş olan Ruby ile birlikte geliyor.
Martijn Heemels

6
Bu araç Windows uyumlu değil. Poster bir Windows aracı isterken, bu cevap için önemli bir faktördür.
Robert MacLean

9

İşte alternatif bir yol. Yüklü python'a ihtiyacınız olacak.

  • Çalıştırmak git update-server-info
  • gidin .gitdizine
  • Çalıştırmak python -mSimpleHTTPServer

(gitconfig'nizde bir takma ad oluşturun)

Artık repoyu git pull http://HOST_NAME:8000/

Not: Usingthe git cin çözümü ayarlayabilirsiniz zaman --base-path=.giturl yanigit://HOST/


0

git-webui, web tabanlı bir kullanıcı arabirimi ve diğer bilgisayarlardan klonlama / çekme yeteneği sağlayan bir git uzantısıdır

https://github.com/alberthier/git-webui

$ cd my_git_repo
$ git webui

Diğer insanlar

$ git clone http://<ip-of-your-computer>:8000/ repoclone

veya

$ git pull http://<ip-of-your-computer>:8000/

Sadece körü körüne denedim. Ben klon git ama webgui erişemiyorum. Tarayıcı, sunucunuzdan bir yanıt bekliyor gibi görünüyor.
15'te sree

0

.Git / config dosyasına aşağıdaki satırları ekleyin

[instaweb]
               local = true
               httpd = webrick
               port = 4231

sonra yürüt

git instaweb

0

Git 2.21 (Şubat 2019), python ve git instaweb:

Bkz . Arti Zirk ( ) tarafından taahhüt edilen 2eb14bb (28 Ocak 2019 ) . (Göre Birleştirilmiş - Junio Cı Hamano - içinde abf39e3 tamamlama 2019 Şubat 5)artizirk
gitster

git-instaweb: Python yerleşik http.serverdesteği ekleyin

Bu yama ile git-instawebPython http.serverCGI işleyicisini -d pythonopsiyon ile başlatmak mümkündür .

git-instawebCGI betiklerinin bir alt dizinde olması gereken ve dizin dizininin kolayca değiştirilemediği CGI işleyicisinin sınırlamasını ele alan http.server(in GIT_DIR/gitweb/) çevresinde küçük bir sarmalayıcı oluşturur cgi-bin. Uygulamayı küçük tutmak için gitweburl üzerinde çalışıyor /cgi-bin/gitweb.cgive açarken otomatik yönlendirme yapılıyor /.

Oluşturulan sargı Python 2 ve 3 ile uyumludur.

Python, varsayılan olarak git instaweb -d pythonbaşka hiçbir şeye ihtiyaç duymadan çalışmayı sağlayan çoğu modern Linux dağıtımına yüklenmiştir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.