Debian 12 bookworm
Sponsored Link

Git : Git でアクセスする2023/07/25

 
Git Daemon をインストールすると、Git プロトコルで Git リポジトリにアクセスすることができます。
[1] Git Daemon をインストールしておきます。
root@dlp:~#
apt -y install git-daemon-sysvinit
root@dlp:~#
vi /etc/default/git-daemon
# 変更
GIT_DAEMON_ENABLE=true
GIT_DAEMON_USER=gitdaemon
GIT_DAEMON_BASE_PATH=/var/lib
GIT_DAEMON_DIRECTORY=/var/lib/git

# Additional options that are passed to the Daemon.
# オプションを追記
GIT_DAEMON_OPTIONS="--export-all --enable=receive-pack"

root@dlp:~#
systemctl restart git-daemon

[2] デフォルトでは [/var/lib/git] 配下が Git プロトコルでアクセス可能となっています。
[/var/lib/git] は root 権限でのみ書き込み可のため、リポジトリは root 権限で要作成です。
例として、事前に作成した [/var/lib/git/project01.git] リポジトリに、任意のノードから Git プロトコルでアクセスします。
debian@node01:~$
mkdir work2

debian@node01:~$
cd work2
# リポジトリの指定はベースパス [--base-path=/var/lib] からの相対パス

debian@node01:~/work2$
git clone git://dlp.srv.world/git/project01.git

Cloning into 'project01'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

# push 等の書き込み操作は不可
# 書き込みが必要な場合は後述の共有の設定を実施

debian@node01:~/work2$
cd project01

debian@node01:~/work2/project01$
echo testfile > testfile2.txt

debian@node01:~/work2/project01$
git add testfile2.txt

debian@node01:~/work2/project01$
git commit testfile2.txt -m "Commit"

[master daf51fa] Commit
 1 file changed, 1 insertion(+)
 create mode 100644 testfile2.txt
debian@node01:~/work2/project01$
git remote -v

origin  git://dlp.srv.world/git/project01.git (fetch)
origin  git://dlp.srv.world/git/project01.git (push)
debian@node01:~/work2/project01$
git push origin master

 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'git://dlp.srv.world/git/project01.git'
関連コンテンツ