Gitサーブ:シンプルにしたい


139

Mercurialのhgサーブのように、http経由で簡単に公開する方法を知りたいです。Windows /ワークボックスでこれを行います:

git serve 

そしてLinuxボックスで簡単に行く:

git clone http://project project 

終了しました。


svn repoのgit-svnクローンを複製するのが難しいことに気づいていますか?subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
ベンディン2008

Linuxノートブックにsvnをインストールして、プロジェクトリポジトリから直接チェックアウトしてみませんか?Gitは新しいホットかもしれませんが、この特定のケースでは、生活を不必要に複雑にしているようです。
2008

bendinいいえ私はそれがトリッキーだったことを知らなかった、それで環境をセットアップしているイムはあなたが話したことがうれしい...
Setori

1
まず、私のvpnへのノートブックの持ち込みが許可されていないため、svnに直接アクセスできません。第二に、私は自分のリポジトリにコミットしたいのですが、gitを使用するすべてのポイントは、ローカルコミット、ブランチ、および簡単なマージを実行できるようにすることです。svnの使用は窮屈になっているようです。
瀬鳥08

pythonがインストールされている場合、シンプルな方法git instaweb -d pythonは難しいかもしれません(Git 2.21、2019年2月)。以下の私の回答を
VonC

回答:


197

プロジェクトに移動し、次のスイッチを使用してgit-daemonを開始します。

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

これはgit-daemonに現在のディレクトリ(私は.git /フォルダーを含むプロジェクトディレクトリであると想定しています)内のすべてのプロジェクトを提供するように指示します。また、シャットダウンして起動が速すぎると、同じアドレスを再利用するように指示します。

これを "gitserve"のような覚えやすい名前のバッチスクリプトに入れることができるので、もう一度入力する必要はありません。一部のコメントで示唆されているように、Gitの最近のバージョンでは、Git構成にエイリアスを追加できます。

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

サーバー(Windowsボックス)でそれが完了すると、次のことができます。

git serve

git-daemonは転送にgit://プロトコルを使用するため、クライアント(Linuxボックス)では次のようにする必要があります。

git clone git://123.456.789.111/ project

3
ここで説明するように、コマンドを.gitconfigファイルにエイリアスとして追加できます:git.or.cz/gitwiki/Aliases#Serverepoonthespot
RFelix


8
git daemon他のgitクライアントによるリモートアクセスは可能ですが、それをhg serve提供するWebインターフェイスがないことに注意することが重要だと思います。
ロブ・ケネディ

4
以下のようなあなたの.gitrcにエイリアスを提供します:serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
dlamblin

1
@ Aeon、URLが変更されたようです。現在はgit.wiki.kernel.org/articles/a/l/i/Aliases.html
Christophe Muller

14

独自のバッチスクリプトを作成するのではなく、gitjourを使用してください。gitデーモンを正しく起動する方法を認識しており、クローンDNSをmDNS経由でブロードキャストするのでgitjour show、Linuxボックスでコピーして貼り付けることができます。

また、gitjourの概要とNic博士による他の同様のツール、* jourとは何か、なぜRailsCamp08のキラーアプリなのかについての優れた記事もあります。


13

現在、サーブとハブの2つのエイリアスを使用しています。読み取り専用の共有のサービスと読み取り/書き込みの共有のハブ:

[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

また、gitデーモンを介した共有に関するより詳細なチュートリアルがあります:http : //l.rw.rw/git-daemon


12

Webブラウザでリポジトリを公開したいだけの場合

git-instaweb

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

それは言うlighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
Rakib

4
@syedrakib lighttpd、apache2、またはその他のものがインストールされている必要があります。個人的に私は使用git instaweb -d webrickWEBrickには、OS X上でプリインストールされているルビー、が付属しているので、OS X上で
マルタインHeemels

6
このツールはWindowsと互換性がないようです。ポスターがWindowsツールを求めていたので、それはこの回答にとって重要な要素です。
ロバートマクリーン

9

ここに別の方法があります。Pythonをインストールする必要があります。

  • 走る git update-server-info
  • 行く.gitディレクトリ
  • 走る python -mSimpleHTTPServer

(gitconfigにエイリアスを作成するだけです)

これで、リポジトリをプルできます git pull http://HOST_NAME:8000/

PS:gitデーモンソリューションを使用する場合--base-path=.git、URLがgit://HOST/


0

git-webuiは、Webベースのユーザーインターフェイスと他のコンピューターからクローン/プルする機能を提供するgit拡張です

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

$ cd my_git_repo
$ git webui

他の人は

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

または

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

私は盲目的にそれを試してみました。git cloneはできますが、webguiにアクセスできません。ブラウザがサーバーからの応答を待っているようです。
sree

0

.git / configに次の行を追加します

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

次に実行します

git instaweb

0

Git 2.21(2019年2月)では、pythonとgit instaweb

Arti Zirk()によるcommit 2eb14bb(2019年1月28日)を参照してください。(合併によりJunio C浜野- -abf39e3コミット 2019年2月5日)artizirk
gitster

git-instaweb:Python組み込みhttp.serverサポートを追加

このパッチgit-instawebを使用すると、Python http.serverCGIハンドラーを-d pythonオプションで使用して起動できます。

git-instawebCGIスクリプトをサブディレクトリに配置する必要があり、ディレクトリインデックスを簡単に変更できないCGIハンドラーの制限に対処するhttp.serverGIT_DIR/gitweb/)の周りに小さなラッパーを生成しますcgi-bin。実装を小さく保つために、gitwebはURL /cgi-bin/gitweb.cgiで実行され、開くときに自動リダイレクトが行われます/ます。

生成されたラッパーは、Python 2および3の両方と互換性があります。

ほとんどの最新のLinuxディストリビューションにはデフォルトでPythonがインストールされており、git instaweb -d python他に何もすることなく実行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.