2016-09-16 15 views
5

私は多くの情報を読みましたが、それでも理解できません。サーバーマシンとクライアントマシンがあるとしましょう。クライアントはssh経由でサーバに接続します。 gitのためのサーバー上での認証はありません。私は最も単純な構成を考えています.3つのクライアントと1つのサーバーがあります。サーバー上でgit repoが保存されていますGit - サーバでgitが必要ですか?

サーバーにgitをインストールする必要がありますか?私はgit pushgit cloneのコマンドがクライアント側でgitを使って実行されていると混乱しています。

+0

これはサーバー上のgitで何をしたいかによって決まります... – deceze

+0

@deceze私は、最も単純な変種の3つのクライアントと1つのサーバーを考えます。サーバー上でgit repoが保存されます。 –

+0

ここにいくつかの便利な情報があります:https://git-scm.com/book/en/v1/Git-on-the-Server – xbonez

答えて

6

のように自由に(小さなチームのために)サーバーを使用しますが、もしすることができますgit pushを使用し、git pushを実行しているマシンは技術的にはクライアントマシンであり、この操作中にプッシュしたマシンがサーバーです。

git pushを実行すると、Gitは基本的にssh [email protected] 'git-receive-pack /path/to/repo'で実行されます。つまり、サーバー上でgit-receive-packが実行されます。次に、ローカルgit pushは、SSH接続を介してリモートgit-receive-packと通信します。

要するに、SSHを押すときにサーバにGitが必要です。必ずしも完全なインストールではなく、少なくとも実行可能ファイルgit-receive-packをプッシュし、git-upload-packをフェッチ/プルします。

他のプロトコル(webdavなど)を使用してGitをインストールしていないリモートマシンにプッシュすることもできますが、お勧めしません。

+0

ありがとうございました。 git-receive-packはクライアントのgitで動作するいくつかのソケットを作成しますか? –

+0

実際には、SSH接続に接続されているstdin/stdoutを通じて通信します。あなたの質問が「どのポートを私がサーバ上で開くべきか」というのであれば、SSHだけが必要です。ネットワークに関しては、単なるSSH接続です。 –

+0

ありがとうございました。あなたはこの質問をどれくらいの間解決できなかったのか想像もできません。 –

0

Gitは分散バージョン管理です。あなたはサーバーを持っている必要はありません。あなたとあなたの友人はgit pullとgit pushの2つのマシンでサーバーを使わずに(分散バージョン管理の利点を利用して)自分のマシンで作業できます。

あなたはいつも他の人が指摘したように、あなたは「どこかにインターネット上で一つの大きなマシンを」意味で「サーバー」を必要としないhttps://bitbucket.org/

1

すでにここで非常に良い答えを追加しています。

「サーバ」という概念は、gitに関しては混乱します。私たちは、私たちの技術的な生活の中で、これがサーバーだと思っています。私たちはこのアイデアを快適に(正しくまたは間違って)見つけます。

分散システムであるため、git-ballのクローンされたコピーはすべて技術的にリポジトリです。

それはあなたのリポジトリのコントロールの中心的なポイントを持つことはまだ非常に良いアイデアだと言われています。

Bitbucketまたはgithub、またはどこかに座っている自分のボックスさえも、「マスター」リポジトリとして機能することができます。

gitのプロフェッショナルな使い方は、一般的には「master」レポで構成されています(bitbucketの場合はpull requestsのみ書き込み可能です)。チームメンバーはリポジトリをフォークし、作業を行い、自身のリポジトリにコミットした後、 'master'レポにプルリクエストを発行します。次に、ピアコードレビューが実行され、正常なプルリクエストがメインリポジトリにマージされます。

これは、多くの優れた実践を促進し、someones elsesサービスでバックアップされたクリーンなリポジトリがあることを意味します。

(私の組織では)100以上のプロジェクトがこのように多くの言語で実行されており、非常にうまく機能しています。

これを基にして、いくつかのワークフローがあります。見てくださいhere合理的に良い説明。

関連する問題