0

サーバー(ロケーションUS)にGitリポジトリを作成しました。ここで、英国にいる人が私のリポジトリにアクセスして、自分の PC でクローンできるようにする必要があります。出来ますか?

静的 IP アドレスを取得できず、SSH セットアップについてもわかりませんか?

4

2 に答える 2

2

それは確かに可能であり、それを行うにはさまざまな方法があります。この回答では、可能な限り選択肢を説明し、状況に関する私の (限られた) 知識に基づいて私自身の推奨事項を提供しようとしました。

ステップ 1: Git リポジトリを提供する

サーバーに Git リポジトリができました。ただし、英国の連絡先はまだサーバーのクローンを作成できません。クローンを作成しようとすると、サーバーが処理方法を認識していないため、接続が拒否されます. Git リポジトリを提供する方法をサーバーに明示的に伝える必要があります。

これをどのように行うかは、後で何をしたいかによって多少異なります。英国の友人がサーバー上のリポジトリに変更をプッシュできるようにしたい場合は、サーバーを SSH サーバーとして設定し、友人にアカウントを与えることをお勧めします。(WebDAV を使用するなど、読み取り/書き込みアクセスを有効にする別の方法があります。Webで検索すると、問題なく見つけることができます。) SSH サーバー、および新しいユーザーを追加する方法について説明します。

一方、英国の担当者が Git リポジトリへの読み取りアクセスのみを必要とする場合は、任意の Web サーバーを使用して Git リポジトリを提供できます。 Pro Gitには、Git を Apache と連携させるためのセットアップに関する適切なセクションがあり、lighttpd や nginx などの他の Web サーバーの手順については、Web 上の他の場所で見つけることができます。Web サーバーが実際にサービスを提供する場所にリポジトリを配置する必要があることに注意してください。これは、Apache の場合は DocumentRoot 内、他のサーバーの場合は同様の場所です。

または、Git プロトコルを使用してリポジトリを提供するように Git 独自のサーバーをセットアップすることもできます。 ここでもPro Gitが登場します。

ステップ 2: ファイアウォールを開く

SSH、Web サーバー、Git サーバーのいずれを使用していても、ファイアウォールでポートを開いて接続できるようにする必要があります。誰もあなたのサーバーに接続できない場合、誰もあなたのリポジトリを読むことができません。SSH を使用している場合は、TCP ポート 22 を開く必要があります。Web サーバーの場合はポート 80。Git サーバー自体の場合は、ポート 9148。

iptables を使用している場合は、実行できます

iptables -A INPUT -p tcp -j ACCEPT --dport ポート番号

port_numberは、開く必要があるポート番号です。root である必要があることに注意してください。必要に応じてsudo -i最初に実行してください。さらに、サーバーを再起動すると、このルールはおそらくリセットされます。Web を調べて、GNU/Linux ディストリビューションが永続的な iptables ルールをどのように処理しているかを確認してください。

iptables を使用していない場合は、Web を検索し、ファイアウォールに関するドキュメントを見つけて、関連するポートを開く方法を見つける必要があります。

ステップ 3: インターネット上でサーバーを見つける

静的 IP アドレスを持っていないとおっしゃいましたが、それで問題ありません。ただし、Git を適切に動作させたい場合は、英国にいる友人に何らかの静的識別子を提供できるようにする必要があります。多くのオプションが用意されている無料の動的 DNS 名を使用する必要があります。私はそれらを自分で使用したことがないので、特に推奨することはできません。おそらく、他の StackOverflow ユーザーにアドバイスがあります。

ステップ 4: 友達にクローン URL を渡す

サーバー上にリポジトリがあり、それを提供するための準備がすべて整っており、ファイアウォールが開いていて、サーバー用のある種のドメイン名が用意されています。ここで、クローン URL が必要です。この URL は、英国の連絡先がリポジトリをクローンするために git-clone に渡す URL です。これは、ステップ 1 で行った選択によって異なります。SSH をセットアップした場合、クローン URL は

ssh://友人のユーザー名@サーバーのドメイン名:リポジトリへのパス

ここで、 friend's_usernameは友人用に設定したユーザー アカウントの名前、your_server_domain_nameは手順 3 で取得したサーバーのドメイン名、path_to_repositoryは共有リポジトリへの実際の Unix ファイル システム パスです。

一方、Web サーバーを使用している場合、クローン URL は HTTP URL です。

http:// your_server_domain_name /リポジトリ

ここで、repositoryは Web サーバーの DocumentRoot から始まるリポジトリへのパスです。

Git サーバーを使用している場合、クローン URL は git:// で始まります。

git:// your_server_domain_name / repository_name

ここで、repository_nameはリポジトリへのパスで、Git サーバーのディレクトリ (多くの場合、/opt/git) から始まります。

この時点で、完了です。あなたの友人は git-clone を使ってあなたのレポジトリのクローンを作成できるはずです。SSH アクセスを正しく設定していれば、変更をレポジトリにプッシュして戻すことができるはずです。

于 2012-09-11T02:01:23.063 に答える
0

いくつかのオプション:

  1. リポジトリを保存するには、Google ドライブやドロップボックスなどのオンライン ドライブを使用します。

  2. Benjaminが述べたように、無料のddnsプロバイダーを使用してドメイン名を取得し、sshサーバーまたはhttp gitサービスをセットアップします。

于 2012-09-11T02:14:47.450 に答える