github註冊流程:git安裝包怎麼安裝

Git 是一個開源版本控制系統,被全球成千上萬的開發人員使用,它用於在源代碼級別跟蹤您的軟體更改,它允許您跟蹤更改,將其恢復到之前的階段並創建文件和目錄的備用版本。

HTTP Git Server 是一個開源項目,它使用 Nginx 網路伺服器通過區域網 (LAN) 為 Git 存儲庫提供服務,它非常簡單且易於設置,任何人都可以從命令行界面管理它。

在本教程中,我將解釋如何在 Debian 11 上使用 Nginx 設置 HTTP Git 存儲庫伺服器。

先決條件

  • 運行 Debian 11 的伺服器。
  • 指向您的伺服器 IP 的有效域名。
  • 在您的伺服器上配置了 root 密碼。

安裝 Nginx 和其他依賴

首先,您需要安裝 Nginx Web 伺服器和其他必需的軟體包來設置 HTTP Git 伺服器。您可以使用以下命令安裝所有這些:

apt-get install nginx git fcgiwrap apache2-utils unzip -y

安裝完所有軟體包後,您可以繼續下一步。

創建 Git 存儲庫

接下來,您需要創建一個目錄來存儲 Git 存儲庫。讓我們在 Nginx Web 根目錄中創建一個名為myrepo的目錄:

mkdir /var/www/html/myrepo

接下來,將目錄更改為myrepo並為用戶創建另一個目錄:

cd /var/www/html/myrepo 
mkdir user1.git

接下來,導航到用戶目錄並使用以下命令初始化 Git 存儲庫:

cd user1.git 
git --bare init

您將獲得以下輸出:

Initialized empty Git repository in /var/www/html/myrepo/user1.git/

接下來,使用以下命令更新 Git 伺服器信息:

git update-server-info

接下來,使用以下命令更改 myrepo 的所有權並設置適當的許可權:

chown -R www-data:www-data /var/www/html/myrepo 
chmod -R 755 /var/www/html/myrepo

接下來,創建一個名為 user1 的用戶並設置密碼:

htpasswd -c /var/www/html/myrepo/htpasswd user1

您可以設置密碼,如下所示:

New password: 
Re-type new password: 
Adding password for user user1

您可以使用以下命令檢查您的密碼:

cat /var/www/html/myrepo/htpasswd

示例輸出:

user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1

配置 Nginx 以提供 Git 存儲庫

接下來,您需要創建一個 Nginx 虛擬主機配置文件來為 Git 存儲庫提供服務。

nano /etc/nginx/conf.d/git.conf

添加以下幾行:

server {
        listen 80;

        root /var/www/html/myrepo;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name git.yourdomain.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

location ~ (/.*) {
    client_max_body_size 0; 
    auth_basic "Git Login"; 
    auth_basic_user_file "/var/www/html/myrepo/htpasswd";
    include /etc/nginx/fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; 
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/html/myrepo;
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; 
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
}

}

完成後保存並關閉文件,然後驗證 Nginx 是否存在任何語法錯誤:

nginx -t

您將獲得以下輸出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最後,重新啟動 Nginx 服務以應用更改:

systemctl restart nginx

您還可以使用以下命令檢查 Nginx 狀態:

systemctl status nginx

您將獲得以下輸出:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-12-11 08:00:04 UTC; 2s ago
       Docs: man:nginx(8)
    Process: 144985 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 144986 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 144987 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.5M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??144987 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??144988 nginx: worker process

Dec 11 08:00:04 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 11 08:00:04 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 11 08:00:04 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

從客戶端連接到 Git 存儲庫

至此,Git HTTP伺服器與Nginx搭建完成。現在,是時候從客戶端計算機連接它並進行測試了。

首先,使用以下命令在客戶端計算機上安裝 Git 包:

apt-get install git -y

接下來,使用以下命令為您的項目創建一個目錄:

mkdir project

接下來,導航到您的項目目錄並使用以下命令初始化 Git:

cd project
git init

接下來,使用您的電子郵件和用戶名配置 Git:

git config --global user.email " user1@yourdomain.com " 
git config --global user.name "user1"

接下來,使用以下命令添加您的 Git HTTP 伺服器:

git remote add origin http: //user1@git.yourdomain.com /user1.git

接下來,創建一個名為 dev01 的目錄並在其中添加一個文件:

mkdir dev01
echo "This is my first application" > dev01/file1

接下來,將您創建的目錄和文件添加到 Git 存儲庫:

git add .

接下來,使用以下命令提交更改:

git commit -a -m "Add files and directories"

您將獲得以下輸出:

[master (root-commit) 0299d83] Add files and directories
 1 file changed, 1 insertion(+)
 create mode 100644 dev01/file1

接下來,使用以下命令將您的文件和目錄上傳到 HTTP Git 伺服器:

git push origin master

系統會要求您提供密碼以訪問 Git 伺服器:

Password for 'http://user1@git.yourdomain.com': 

連接後,您將獲得以下輸出:

Counting objects: 4, done.
Writing objects: 100% (4/4), 281 bytes | 281.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To http://git.yourdomain.com/user1.git
 * [new branch]      master -> master

您還可以使用以下命令直接從 Git 伺服器下載您的存儲庫:

git clone http: //user1@git.yourdomain.com /user1.git

您將獲得以下輸出:

Cloning into 'user1'...
Password for 'http://user1@git.yourdomain.com': 
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

結論

在上面的指南中,您學習了如何在 Debian 11 上使用 Nginx 設置 HTTP Git 伺服器,您現在可以在本地開發環境中實施此設置,並使用命令行管理和跟蹤您的項目。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225361.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:44
下一篇 2024-12-09 14:44

相關推薦

發表回復

登錄後才能評論