私のWebホストは、Gitを「サーバー」としてではなく、Linuxベースの(Debianだと思います)Webホスティングサーバーに「クライアント」としてインストールしました。
Windows 7 デスクトップ コンピューター経由で GitGUI を使用して、Web ホストの Git インストールに接続する方法はありますか?
Git の「クライアント」インストールと「サーバー」インストールの区別はほとんどありません。Git は、Git リポジトリを単独で提供できるプログラムを 1 つだけ提供します — git-daemon
. また、認証を提供しないため、通常、公開アクセス可能なリポジトリを提供するマシンにのみインストールされます (free-for-all read-onlygit://
プロトコルを使用)。
Git リポジトリへの「通常の」書き込みアクセスはすべて、他のソフトウェア (通常はサーバー (プロトコル用) またはサーバー (プロトコル用))によって仲介されます。このソフトウェアは、必要な認証と承認を実行し、低レベルの Git プログラムを呼び出してクライアント/サーバー データ交換を実行します。HTTP[S]
http://
SSH
ssh://
そのため、最初にリポジトリへのアクセス方法を決定する必要があります。
あなたの状況では、私は SSH を選択します: あなたの Web ホストは (おそらく) Linux を搭載した VPS であるため、SSH サーバーが既に稼働している可能性が高く、このためのアカウントが与えられているはずです (そうでない場合は、質問する時間)。
ストーリーの残りの部分は、ここで説明されています(素敵な写真付き)。唯一の違いは、github を使用しないため、公開 SSH キーを手動で VPS ホストに転送する必要があることです。
サーバー上で Git をホストする方法の詳細については、The Bookを参照してください (これHTTP[S]
は、Git でのサポートの改善に関する後日の補遺です)。
Git での SSH の使用に関する更新。
実際、SSH 経由でアクセスする Git リポジトリをホストすることは、設定する内容 (シンプルなソリューション、または仮想化された Git ユーザーとアクセス権管理などを備えた注目度の高いサーバー) に応じて、非常に単純な場合もあれば複雑な場合もあります。
SSH を使用すると、Git は次のように動作します。
さらに先に進むために習得する必要がある他の2つのビットがあります。
SSH はいくつかの「サービス」をサポートしますが (たとえば、SFTP — FTP の安全なバージョンであり、プレーンな TCP トンネルを作成します)、最も一般的な使用例はプロセスをリモートで開始することであり、最も一般的な場合はシェルです (つまり、結局のところ、SSH と名付けられた理由 — Secure SHell)。
このようなリモート プロセスが開始されると、ログインしているユーザーの資格情報で動作します。そのため、SSH サーバーにログインすると (「手動で」、または Git がこれを行います)、リモート サーバーでシェルが開始され、認証されたリモートユーザーの資格情報で動作します。
リモート リポジトリにアクセスしようとする前に、Git クライアントはそのリポジトリの URL を解析します。面倒な詳細はgit-fetch
マニュアルに記載されていますが、簡単なことは次のような URL です。
ssh://user@server/path/to/the/repo.git
プロトコル部分、ユーザー、サーバー、およびリポジトリへのパスに分解されます。
/path/to/the/repo.git
このリポジトリへのパスは、サーバー上の物理パスです。そうです、それはとても簡単です。リポジトリの場所をGitに伝えるために、ある種の構成ファイルなどを微調整する必要はありません。代わりに、URLで指定するだけです。
リポジトリ パス処理のやや高度なひねりは、特別なショートカットを使用してリモート ユーザーのホーム ディレクトリを参照できるようにすることです。これは、次のようなパスを使用して行われます
/~/devel/repo.git
これにより、Git はリモート ユーザーのホーム ディレクトリの下にある「devel」という名前のディレクトリを探し、そこで「repo.git」ディレクトリを探します。この方法は、Git リポジトリを保持するために特別なディレクトリを確保したくない場合に便利です。また、このアプローチは 1 人のプロジェクトに最適です。
典型的な Linux ベースの OS では、ユーザーは/home
階層の下にホーム ディレクトリを持っているため、ユーザーjohndoe
は自分のホーム ディレクトリを持っています/home/johndoe
。SSH 経由で対話的にログインした後、ホーム ディレクトリが何であるかを確認できます。
cd
pwd
(最初のコマンドは現在のディレクトリをホーム ディレクトリに変更し、2 番目のコマンドは現在のディレクトリを出力します)。
したがって、最も単純なケースでは、次のようにすることができます。
SSH 経由でサーバーにログインします。
サーバー側のリポジトリをどこかに作成します。
cd /var/tmp
mkdir test.git
cd test.git
git init --bare
ログアウト。
このリモートをローカル リポジトリに追加します。
git remote add test ssh://user@server/var/tmp/test.git
このリモコンで作業します:
git push test master
Git がサーバー上で正常に動作することを確認するには、次のようにしてみてください。
ssh user@server "git --version"
また
plink user@server "git --version"
Git for Windows に同梱されている OpenSSH クライアントではなく、PuTTY を使用している場合。