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インターフェイスを使用するとさらに使いやすくなります。



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



All Articles