1

git (web) ブラウザを作成したいのでgit log、ssh 接続されたマシンにあるリモート リポジトリでコミット ( ) を反復処理する必要があります。私のレポは非常に大きく、常に変化しているため、ローカルでのみ変更をフェッチしないことに関心がありgit logます。

私は試してみました:

git remote add origin ssh://example.net/repo
git checkout -b master --track origin/master

失敗しました:\

それを行う方法のヒントはありますか?

4

6 に答える 6

2

フックを使用してログを Web サーバーにプッシュできます。リポジトリ ホストでスクリプトを作成します。

repo.git/hook/post-receive

リポジトリのパスはどこrepo.gitですか。誰かがこのリポジトリにプッシュすると、フックがトリガーされ、git ログがファイルにダンプされ、ssh 経由で Web サーバーに送信されます。

このソリューションには、Web サーバーにアクセスできる人がリポジトリにすぐにアクセスできないという利点があります。

于 2011-08-03T20:10:26.907 に答える
0

git fetch origin引用したコマンドでエラーが発生する理由は、リモート追跡ブランチを作成するために、リモートを追加した後に実行する必要があるためですorigin/master

于 2011-08-31T09:07:52.690 に答える
0

リモート マシンでcdリポジトリに移動し、git instaweb. これにより、ログや一般的に使用されるその他すべてのものを含む、アクセス可能な Web サーバーが起動します。git help instaweb詳細については。

于 2011-08-03T10:25:38.793 に答える
0

git log を実行するために取得しなければならないことは、常に機能するとは限りません。- 私はめったに更新しない大きなレポを持っているので、変更が必要な場合にのみクローンを作成します。しかし、私はそれに対する変化についていきたいと思います。-押しただけです。リモートリポジトリが私の変更を取得したことを再確認したいと思います。ssh アクセス権はありませんが、マシンへの git アクセス権はあります。

次のことは明らかです。

GIT_DIR=node:/path/to/repo.git git log

制限された git log スイッチのセットで機能するはずです。

これは、今日の git の数少ない穴の 1 つです。

于 2011-11-04T13:01:11.180 に答える
0

cronjob で ssh 経由で git log を実行してみることができます:

ssh example.net git --git-dir=repo log > /tmp/repo.log

この方法では、ローカル リポジトリのコピーを作成する必要はありません。これは、ssh キーがセットアップされていて、この構成で安全だと感じていることを前提としています (Web サーバーにアクセスできる誰かがリポジトリにアクセスできる可能性があります)。

于 2011-08-05T07:04:58.377 に答える
-1

localyを実行したい場合はgit log、リポジトリのクローンを作成する必要があります (それはあなたがしようとしていたことではありませんか?):

git clone example.net/repo

欠点は、Web サーバーに保存するためのスペースが必要になることですが、将来のプルでは新しい変更のみがダウンロードされ、変更のサイズによっては非常に高速になる可能性があります。

cd repo
git pull

crontab で作成するpullか、フックを使用してリポジトリ ホストからトリガーし、必要な場合にのみ更新することができます。

于 2011-08-05T07:23:35.573 に答える