FreeBSD 14
Sponsored Link

Git : Git でアクセスする2024/09/13

 

Git Daemon をインストールすると、Git プロトコルで Git リポジトリにアクセスすることができます。

[1] Git Daemon を起動しておきます。
root@dlp:~ #
mkdir /usr/local/git

root@dlp:~ #
sysrc git_daemon_directory="/usr/local/git"

root@dlp:~ #
sysrc git_daemon_flags="--syslog --reuseaddr --detach --export-all --enable=receive-pack --base-path=/usr/local"

root@dlp:~ #
service git_daemon enable

git_daemon enabled in /etc/rc.conf
root@dlp:~ #
service git_daemon start

Starting git_daemon.
# テスト用の共有リポジトリ作成

root@dlp:~ #
cd /usr/local/git

root@dlp:/usr/local/git #
mkdir project01.git

root@dlp:/usr/local/git #
cd project01.git

root@dlp:/usr/local/git/project01.git #
git init --bare --shared

root@dlp:/usr/local/git/project01.git #
pw groupadd git_users

root@dlp:/usr/local/git/project01.git #
chown -R git_daemon:git_users /usr/local/git/project01.git
# リポジトリ使用を許可するユーザーを作成したグループに追加

root@dlp:/usr/local/git/project01.git #
pw groupmod git_users -m freebsd
[2] 任意のノードから Git プロトコルでアクセスして動作確認します。
freebsd@node01:~ $
mkdir work2

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

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

Cloning into 'project01'...
warning: You appear to have cloned an empty repository.

freebsd@node01:~/work2 $
cd project01

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

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

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

[master (root-commit) 4ba5f86] Commit
 1 file changed, 1 insertion(+)
 create mode 100644 testfile2.txt

freebsd@node01:~/work2/project01 $
git remote -v

origin  git://dlp.srv.world/git/project01.git (fetch)
origin  git://dlp.srv.world/git/project01.git (push)

freebsd@node01:~/work2/project01 $
git push origin master

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 228 bytes | 228.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To git://dlp.srv.world/git/project01.git
 * [new branch]      master -> master
関連コンテンツ