PWビルドのGit

PWビルドのGit

A、Gitのサーバーは、さまざまな方法を設定します

GITは、分散バージョン管理システムであり、それがそのように分散されているので、確かに通信を必要とするだろうし、遠隔通信のためのGITプロトコルを使用することは何ですか?

Gitは4つの通信プロトコルをサポートしています。

  1. ローカル(現地協定)
  2. SSH
  3. HTTP(ダム、スマート)
  4. gitの

1、ローカル(現地協定)

ローカルファイルシステムまたは共有(NFS)ファイルシステムに基づくアクセス。

長所:簡単な、直接使用する既存のファイルアクセス権やネットワークアクセスは、このような管理システムの小型版を構築するための小規模なチームプロジェクトは、非常に簡単なことです。

短所:このプロトコルの欠陥は、ローカルエリアで、共有ファイルシステムの制限自体であり、速度が遅いです。

シーンにマッチ:小さなチーム、小さなプロジェクトでは、サービスのバージョンをその場しのぎ。

  • ローカルプロトコルが使用さ:

    # 从本地 f/git/atals 目录克隆项目
    git clone /f/git/atals/
    # 即使是 bare仓库也可以正常下载
    git clone /f/git/atals.git
    # 基于file 协议克隆本地项目
    git clone file:///f/git/atals/

    URLの先頭に明示的にファイルを指定した場合://を、そしてGitの動作が若干異なります。あなただけのパスを指定すると、Gitはハードリンク(ハードリンク)を使用するか、または直接、必要なファイルをコピーしようとします。あなたは、ファイルを指定した場合://、Gitは通常はデータのネットワーク伝送のために使用されるプロセスをトリガーする、パッケージ化されたファイルで送信され、より多くのハード・ディスク・スペースを節約。

2、SSHプロトコル

linuxの大多数である通信のサポート用のgit sshプロトコルは、uninxシステムがサポートしているので、サービスのGITのバージョンを設定する契約を利用することは非常に便利です。

利点:まず、SSHは、非常に効率的な追加のSSHプロトコル、送信前にデータを圧縮しても安全しようとしているアクセスSSH、続いてセットアップすることは比較的簡単です。

短所:許可制度が柔軟ではない、あなたはバージョンを読み取るために必要なだけである場合でも、アカウントのオペレーティングシステムのパスワードを提供する必要があります。

シーンにマッチ:小さなチーム、小規模なプロジェクト、一時的なプロジェクト

  • SSHプロトコルに基づいて、

    あなたがサービスとの通信にgitのsshプロトコルを使用する前に、ここでgitのサービスは、Linuxシステムにインストールする必要があります。

    #创建一个祼项目
    git --bare init lin.git
    
    #本地基于远程克隆仓库
    git clone [email protected]:/data/git-repository/lin.git
    cd lin/
    #添加文件
    echo "this is luban" >> README.MF
    # 本地添加、提交、并推送至远程
    git add -A; git commit -am 'first commit'; git push;

    発生する可能性のあるエラー:

    Gitのアップロードパック:コマンドが見つかりません。

    その理由は、/ usr / binの下のディレクトリにアクセスすることしかできませんsshプロトコルの下で、解決策は以下のようであるということです

    LN -sは/ usr / local / gitの/ binに/ Gitのアップロードパックは/ usr / binに/ Gitのアップロードパック

    LN -sは/ usr / local / gitの/ binに/のgit - 受信パックは/ usr / binに/のgit - 受信パック

3、HTTP(ダム、スマート)

GitのHTTPプロトコルは、怠惰なWebコンテナ(アパッチ、nginxの)およびCGIコンポーネント、および承認検証のために使用Webコンテナ自体許可システムによる対話形式で通信することです。前のGit 1.6.6で唯一のダムのhttp、のみダウンロードすることができます。httpダム(ダム)プロトコルは、通常、sshプロトコルは、ssh勘定設定の提出と併せて使用、提出することはできませんサポートし、読み取り専用アカウントを提供します。1.6.6 Gitはリモコン受信プッシュ機能を実現するためのgit-HTTP-バックエンドCGIを提供した後。

長所:あなたがパブリックネットワークに入ることができるように、ローカル権限を解決し、sshの単一の問題を検証するために、HTTP URLに基づいて、匿名のサービスを提供することができます。ローカルとsshはこれを行うことが困難であり、これは、似たようなサイトのgithubのを達成するようになります。

短所:デプロイする複雑な構成のニーズの勃起WEBサーバ、HTTPS証明書など。

シーン:大規模なチーム、精密な制御権限の必要性、オンラインに公開するサービスを展開する必要があります。

  • HTTPダム構成と使用

    1. 倉庫のサーバのバージョンを作成します。

      cd /data/git-repository
      git --bare init lin.git
      cd lin.git/hooks/mv 
      // 版本更新钩子,当有版本提交的时候会执行更新
      post-update.sample post-update
      ./post-update
      nginx 静态访问配置
      server {
              listen       80;
              server_name  git.lin.com;
              location / {
                  root  /data/git-repository;
              }
      }
      #重命名钩子 
      mv hooks/post-update.sample hooks/post-update
    2. ローカルクローニングリモートサービス

      git clone http://git.lin.com/lin.git

      注:場所にあったようにHTTPプロトコルは、一般的に代わりgitlabを使用するのでは、ここで実行していない、より複雑なGITのgit-HTTP-バックエンドを使用するためのスクリプトは、configureでCGIスマートに基づいており、Web管理gogsは、このデモではありません。

4、Gitのプロトコル

GitリポジトリのGitプロトコルは、特殊なデーモンに含まれている、それはSSHサービスに似た特定のポート(9418)、上でリッスンしますが、任意の許可なしにアクセスできます。

長所:現時点では、GitのGitのプロトコル・ネットワーク・トランスポート・プロトコルは、最速で使用されています。プロジェクトがアクセスの偉大な量を持っている、またはあなたのプロジェクトは非常に大きく、書き込みにユーザー認証を必要としない場合は、サービスを提供するために、任意のGitのデーモンアップセットは良い選択です。これは、同じSSHデータ転送メカニズムを使用しますが、暗号化と認証のオーバーヘッドなし。

欠点: Gitのプロトコルの欠点は、承認メカニズムの欠如です。そして、9418は、非標準のポートで、一般的なファイアウォールが開きません。

  • 使用GITプロトコル

    cd lin.git/
    # 创建一个空文件,表示开放该项目
    touch git-daemon-export-ok
    # 后台启动守护进程
    $nohub git daemon --reuseaddr --base-path=/data/git-repository/ /data/git-repository/ &
    #本地克隆远程项目
    git clone git://192.168.0.147:9418/lin.git

gogsに基づく第2は、プライベートGITサービスを構築します

  1. はじめとgogs

  2. gogs基本構成

  3. バックアップおよびリカバリのタイミングgogs

1、はじめとインストールをgogs

Gogsは、オープンソース、フルスピード、国際追い越さかなり良いを実行するために、シンプルで使いやすいことを特徴としている軽量のGitのウェブサービスです。次のようにその主な機能は以下のとおりです。

  1. HTTPと2つのプロトコルは、SSHアクセス・サービス・ソースを提供します

  2. 修飾のためのビューのソースコードへのWebインタフェースを提供

  3. 団体、チームや個人倉庫許可を含む、より完全な著作権管理機能を提供

  4. このプロジェクトは、単純な機能を提供しビッキー

  5. これは、作業指示管理とマイルストーン管理を提供します。

ダウンロードしてインストールします。

公式サイト:httpsを://gogs.io

ダウンロードします。https://gogs.io/docs/installationをダウンロードしてインストールすることを選択したLINX AMD64

ドキュメンテーションます。https://gogs.io/docs/installation/install_from_binary

  • インストール:

    • ディレクトリを解凍後:

  • ラン

    #前台运行
    ./gogs web
    #后台运行
    $nohup ./gogs web &

    ポートデフォルト:3000

    最初の訪問のhttp:// <ホスト>:3000には、初期設定ページに入りブート設定を行います。

    代わりに、または他のMySQL SQLiteのデータ。選挙はsqlliteです

2、gogs基本的な設定

メールの設定手順:

メールの設定は、電子メールの確認を登録し、電子メールを送信するときに、パスワード認証を取得するために使用されます。二つのステップで構成されました:

まず:通常、企業の管理者のメールボックスで、口座開設のSMTPメールサービスを作成します。私はここにQQのメールボックスを使用します。

第二:配置されたgogs_home /カスタム/ confに/ app.iniファイル。

ENABLED真の速達サービスへ=

ホストのSMTPサーバーアドレスの(SMTPサービスは、対応するメールボックスのオープンを必要とし、アクセスSSLの形式でなければなりません)

以下からの送信者の名前と住所

ユーザーは、アカウントを送信します

passwdのは、 SMTPアカウントを開いたときに、対応する認証コードを持っています

再起動が直接テストすることができた後、

管理者ログイン==「コントロールパネル==」アプリケーション構成の管理==「メールの設定==」送信テストメッセージ

3、gogs定期的なバックアップとリカバリ

バックアップとリカバリ:

#查看备份相关参数
./gogs backup -h
#默认备份,备份在当前目录
./gogs backup 
#参数化备份  --target 输出目录 --database-only 只备份 db 
./gogs backup --target=./backupes --database-only --exclude-repos
#恢复。执行该命令前要先删除 custom.bak
./gogs restore --from=gogs-backup-20180411062712.zip
#自动备份脚本
#!/bin/sh -e
gogs_home="/home/apps/svr/gogs/"
backup_dir="$gogs_home/backups"

cd `dirname $0`
# 执行备份命令
./gogs backup --target=$backup_dir

echo 'backup sucess'
day=7
#查找并删除 7天前的备份  
find $backup_dir -name '*.zip' -mtime +7 -type f |xargs rm -f;
echo 'delete expire back data!'

#添加定时任务 每天4:00执行备份
# 打开任务编辑器
crontab -e
# 输入如下命令 00 04 * * * 每天凌晨4点执行 do-backup.sh 并输出日志至 #backup.log
00 04 * * * /home/apps/svr/gogs/do-backup.sh >> /home/apps/svr/gogs/backup.log 2>&1

4、クライアント公開鍵とアドオンを設定します

Gitの設定。

#Git安装完之后,需做最后一步配置。打开git bash,分别执行以下两句命令
git config --global user.name “用户名”
git config --global user.email “邮箱”
#git 自动记住用户和密码操作
git config --global credential.helper store

SSH公開鍵を作成します。

  1. オープンのgit bashの
  2. 実行コマンド生成、公開鍵と秘密鍵:SSH-keygenは-t rsaの押しは3を入力します。
  3. 猫の〜/ .ssh / id_rsa.pub:公開鍵を表示するコマンド
  4. サービスにコンテンツをコピーid_rsa.pubの〜/ .ssh / authorized_keysにに

おすすめ

転載: www.cnblogs.com/jinchengll/p/11968761.html