gitリポジトリをLinuxファイルシステムツリーに保存する従来の場所はどこですか?


58

Webサーバーのホスティングと類推すると、gitのデータはにあるはずだと/var/git思うので、私のgitリポジトリは/var/git/myrepo

Q:それは正しい推測ですか?

回答:


31

あなた自身の個人的な宗教とhier(7)あなたのシステムのマンページの内容によって決定されたものを除いて、ここには正しい答えも間違った答えもありません。

典型的なLinux hierマンページ典型的なBSD hierマンページ

/var/git/*個人的には理にかなっているようです。それが私の所です。


3
同様に、Arch Linuxのapacheのフォルダーは(他のディストリビューションのように/ var / wwwの代わりに)/ srv / httpなので、gitを/ srv / gitに置きます。
trusktr

どこかの/ varの下に/合理的なようだが、また、下記のデニス・Rの回答を参照してください。serverfault.com/a/433584/45819を -彼は、正当な理由とは/ var / libに/ gitの中にそれを置く
MIT

30

の下のディレクトリ(または共有ファイルシステム)に配置し/srvます。これが目的です。

この/srvディレクトリは、システムが提供するサイト固有のデータを対象としています。標準から:

これを指定する主な目的は、ユーザーが特定のサービスのデータファイルの場所を見つけ、読み取り専用データ、書き込み可能なデータ、およびスクリプト(cgiスクリプトなど)の単一ツリーを必要とするサービスを合理的に配置できるようにすることです。特定のユーザーのみが関心を持つデータは、そのユーザーのホームディレクトリに移動する必要があります。

のサブディレクトリに名前を付けるために使用される方法論/srvは、現在これがどのように行われるべきかについてコンセンサスがないため、特定されていません。データを構造化する1つの方法/srvは、プロトコルなどです。ftprsyncwww、とcvs。大規模なシステムでは、それは構造に役立ちます/srvよう、管理コンテキストで/srv/physics/www/srv/compsci/cvsこのセットアップは、ホストにホストとは異なります、など。したがって、プログラムは、/srv既存の特定のサブディレクトリ構造またはに格納される必要があるデータに依存するべきではありません/srv。ただし/srv、FHS準拠のシステムには常に存在する必要があり、そのようなデータのデフォルトの場所として使用する必要があります。

ディストリビューションは、管理者の許可なしにこれらのディレクトリにローカルに配置されたファイルを削除しないように注意する必要があります。


SELinux対応システムでは、デフォルトのディレクトリは/var/www/gitであり、リポジトリはそのサブディレクトリにある必要があります。または、たとえば/srv/git、使用して、ファイルコンテキストを同等に設定できます。

semanage fcontext -a -e /var/www/git /srv/git

5
/home/git/

これは最初は少し型にはまらないように思えるかもしれませんが、このディレクトリは(正しい権限で)作成されるため、非常に合理的ですsudo useradd git。gitユーザーに切り替えてcdすぐに実行できます:

$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys

作成したばかりのauthorized_keysファイルにピアの公開鍵を入れます。

あなたの後git init --bare、プロジェクト、「urlは」ただ...それを待つ、その後で...

git@<server>:<project>

「Pro Git」の本で推奨されているように:git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

voretaq7が言ったように、そのような主題には正しい答えも間違った答えもありません。ただし、ソフトをフォローしたい場合は、データベースソフトがデータを保存するようです

/var/lib/soft

たとえば、Debian上のPostgresql 9.1の場合、フォルダーは

/var/lib/postgresql/9.1/

だから私は個人的に選ぶだろう

/var/lib/git

1

それは完全にあなた次第です。ただし、最適なのは、システムのアップグレードなどを簡単にするために、gitデータディレクトリを別のパーティションまたはディスクに配置することです。もちろん、十分なディスク容量があることを確認する必要があります。


1

私のArch Linuxでは/srv/http、Apache(システムのデフォルト)を使用しており、node.js httpサーバーにも使用しています。同様に、すべてのgitリポジトリをに入れることにしました/srv/git

私はGitLabを使用しており、/srv/gitその場合もgitのホームフォルダーです。

最終的に、それはあなた次第です。あなたのディストリビューションの他のサービスに似た形式に固執することは覚えやすいとわかりました。


0

gitに何らかのフロントエンドを使用する場合は、ディストリビューションでパッケージ化されたものが配置したい場所に移動してください。それ以外のものは、単に不必要な非互換性を生み出しています。


1 / Gitにフロントエンドを使用していない
サミュエルロッシーユ

1 /フロントエンドでは、gitサーバーがリポジトリを提供すると想定します。2 / HTTPサーバーのみが使用される場合でも、そのようなサーバーにはデフォルトの場所があります。もちろん、ホスティングの場所について話します。コードを操作するとき、.gitはほとんどプロジェクト内にあります。
hultqvist 14年

0

まず、/ srvを使用するという提案に関しては、すべてのgitリポジトリがWebサイトに使用されることを前提としています。それはあなたにとって真実かもしれませんが、あなたはウェブサイトではないソフトウェアを手にすることができます。

次に、コードリポジトリを/ var / www / htmlまたは/ srv / htmlの外部に保存することにより、2つの優れた利点が得られます。任意のレベルでリポジトリにシンボリックリンクを作成して、ライブラリを簡単に非表示にすることができます。また、リポジトリの場所がまったく変更された場合、仮想ホストの構成を変更する必要はありません。代わりに、シンボリックリンクを調整するだけです。

私は/ var / repoを使用していましたが、/ var / gitの方が優れていると思い、今後はそれを使用する予定です。


0

サイト構成を維持するためにgitリポジトリをダウンロードするときに、それを展開します

/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

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