UbuntuにcGitをインストールして構成する

この記事の助けを借りて(ステップバイステップの説明)、 cGitベースのWebインターフェースを使用して、独自のGitリポジトリーを作成できます。

そのため、シンプルで簡潔な方法で、標準のcGitは次のように見えます(クリック可能)。


仮想専用サーバー(VPS、VDS)は現在非常に人気があります。 1か月に5〜15ドルで、個々の設定、優れたリソース、心が望むほぼすべてを備えた、ほぼ本格的なホスティングを使用する余裕があります。 私の魂はGitバージョン管理システムを使用したいと考えています。 これには多くの利点がありますが、主なものは速度と利便性です。 私は長い間(自分の自由意志ではなく)SVNを使用していましたが、Gitを試したときは非常に驚きました。 開発プロセス、ブランチのマージ、ブランチからブランチへの切り替え、更新は、非常に便利で、高速で、手間がかかりません! cGitをWebフェイスとして選択したのは、cGitが使用されている場所が非常に多く、小さくて高速だからです。 また、私はgitwebが本当に好きではなかったので、何らかの理由でより人気があります。 Ubuntu 9.04と9.10は、それぞれサーバーとクライアントにインストールされます。 すべてのアクションはコンソールで実行されます。 この手順は、初心者ユーザー向けに設計されています。

まず最初に(まだ行っていない場合)、リモートコンピューターにLAMPをインストールする必要があります(サーバーであり、将来のストレージです)。 このためには、ubuntではそれで十分です。
sudo tasksel install lamp-server 

次に、cGitの最新バージョンをダウンロードしてコンパイルします。 これを行うには、いくつかのライブラリとプログラムが必要です。 それらをインストールするには、次のようにします。
 sudo apt-get install libcurl4-openssl-dev git-core build-essential mc 

コンパイル用のパッケージ、mcファイルマネージャー(非常に便利なmceditエディター)、およびGitユーティリティパッケージ自体をインストールしました。 コンパイルとインストールを始めましょう。
 git clone git://hjemli.net/pub/git/cgit cd cgit/ git submodule init git submodule update make 

約20 MBがダウンロードされます。 コンパイルとリンクが正常に完了するまで待ちます(通常は数分以内)。 その結果、将来のリポジトリ用のcgi-script、ロゴ、およびcssファイルを取得しました。 cGitを手動でインストールおよび構成します。

cGitへのアクセス方法に応じて、さらにいくつかのオプションが可能です。 サブドメインにアクセスできると便利でした。 たとえば、 git.example.ruです。 これを行うには、新しい仮想ホストを作成します(リモートユーザー名はprojects ):
 sudo touch /etc/apache2/sites-available/cgit sudo mcedit /etc/apache2/sites-available/cgit 

そして、ファイルの内容にコードを挿入します(ドメインを自分のものに変更することを忘れないでください):

 <VirtualHost *:80> ServerName git.example.ru DocumentRoot /home/projects/www/cgit DirectoryIndex cgit.cgi SetEnv CGIT_CONFIG /etc/cgitrc <Directory "/home/projects/www/cgit"> Options FollowSymlinks ExecCGI Allow from all AllowOverride all Order allow,deny <Files cgit.cgi> SetHandler cgi-script </Files> </Directory> <Directory "/home/projects"> Allow from all </Directory> </VirtualHost> 


cGitのディレクトリを作成し、コンパイルされたファイルをそこにコピーします。
 mkdir ~/www/cgit -p cd ~/cgit cp cgit ~/www/cgit/cgit.cgi cp cgit.png ~/www/cgit/ cp cgit.css ~/www/cgit/ 

cGitの構成ファイルを作成し、設定を書き込みます。
 sudo touch /etc/cgitrc sudo mcedit /etc/cgitrc 

エディターが開きます。 コメントを含む私の設定内容は次のとおりです。
 #     virtual-root=/ #     . css=/cgit.css logo=/cgit.png #    Git . scan-path=/home/projects #   ... enable-index-links=1 enable-log-filecount=1 enable-log-linecount=1 #  root-title=  # root-desc=    ,     ? #  ,     (  ) snapshots=tar.gz tar.bz2 zip #  ( ,   )  repo.url=temp repo.path=/home/sartor/www/temp/.git repo.desc=    repo.owner=Sartor repo.url=exp repo.path=/home/sartor/www/exp/.git repo.desc=Experimentum repo.owner=Sartor 

これで、すべてを実行する準備が整いました。 仮想ホストを許可リストに追加し、Apacheを再起動します。
 sudo a2ensite cgit sudo /etc/init.d/apache2 restart 

git.example.ruに移動し、すべてが機能することを確認します。
50xエラーが発生した場合は、次を実行する必要があります。
 sudo touch ~/www/cgit/.htaccess sudo mcedit ~/www/cgit/.htaccess 

そして、次の内容を貼り付けます(パスを自分のものに変更することを忘れないでください):
 RewriteEngine on RewriteCond %{HTTP_HOST} ^git\. RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteCond %{HTTP_HOST} ^git\. RewriteRule ^git/$ /home/projects/www/cgit/cgit.cgi [L] RewriteCond %{HTTP_HOST} ^git\. RewriteRule ^(.*)$ /home/projects/www/cgit/cgit.cgi?url=$1 [L,QSA] 

今では間違いなく動作します:)
すべてが正しく機能するかどうかを確認するには、1つのファイルでリポジトリを作成します。
 mkdir ~/test cd ~/test touch habr.txt echo " , " > habr.txt git init git add . git commit -m " " 

ブラウザで老人を更新し、最初のコミットを確認します。

私たちが行ったこととその使用方法を要約します。
リモートサーバーで、人気のあるGitバージョン管理システム用のWebインターフェイスを作成しました。 gitサブドメインを介してアクセスします。

開発者シナリオの例を説明します。
  1. 自宅のサーバー(たとえばwww / test )に新しいフォルダーを作成します。
  2. git initを実行します。
  3. ローカルマシンでgit clone projects@example.ru:www / test / .gitを実行します。 これにより、リモートリポジトリのローカルコピーが作成されます(これまでは空です)。
  4. 前の手順で作成したローカルフォルダーに一連のファイルを配置します。 いわば、プロジェクトの枠組みを作ります。 必要に応じて、例外(.gitignore)を追加します。
  5. git addを実行します。 && git commit && git push 、私の変更についてコメントします。
  6. それだけです ローカルおよびリモートのリポジトリが更新および同期されます。
  7. 私はプロジェクトに取り組んでいます。 意味のある変更を行った後、手順5を再度実行します。最初に作業したフォルダーに移動することを忘れないでください。 特に zyなcな私はbashのエイリアスを作成できます。

あなたがWeb開発者であり、作業の現在の結果を頻繁に表示する必要がある場合、そのようなコンテンツを含むプロジェクトの.git / hooksフォルダーに受信後ファイルを配置すると非常に便利です。
 #!/bin/sh cd .. env -i git checkout -f echo "   !" 

そして彼に実行する権利を与えます。 これで、各更新(ステップ5)の後、プロジェクトの作業ツリーも更新され、実際のファイルは常に最新の最新バージョンになります(そして、ほとんどすべての人がリモートリポジトリの更新時にこれを期待しますが、これはデフォルトでは行われません)。

gitの操作を学ぶことは、迅速かつ直感的です。 さまざまな言語のこの硬貨に関する多くの情報があり、Webインターフェイスを使用するとさらに使いやすくなります。

私は設定をきれいにするふりをしません、私からの管理者はそうではありません。 しかし、彼らは動作することが保証されています。

Source: https://habr.com/ru/post/J86753/


All Articles