これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2024/12/23 15:49:04.419 (台灣標準時)
以下は、 git の server を準備し、使えるようにする記録でござる。
まず、 git というアカウントを作るでござる。
% su -m - # useradd -m -u 12345 -g 12345 git
git アカウントに切り替えるでござる。
# su -l git % whoami git % pwd /home/git
ホームディレクトリーに .ssh というディレクトリーを作り、 そこに空の authorized_keys というファイルを作っておくでご ざる。
% mkdir .ssh % chmod go-rx .ssh % cd .ssh % touch authorized_keys % ls -lF total 0 -rw-r--r-- 1 git taiwan 0 Nov 15 10:21 authorized_keys % chmod go-r authorized_keys % ls -lF total 0 -rw------- 1 git taiwan 0 Nov 15 10:21 authorized_keys
利用したいアカウントが接続できるように、公開鍵を authorized_keys に追加するでござる。
% cat /somewhere/in/the/disk/id_ed25519.pub >> authorized_keys % ls -lF authorized_keys -rw------- 1 git taiwan 96 Nov 15 10:25 authorized_keys
リポジトリーのためのディレクトリーを作るでござる。
% cd % pwd /home/git % mkdir test_repository % ls -lF total 16 drwxr-xr-x 2 git taiwan 512 Nov 15 10:33 test_repository/ % cd test_repository % pwd /home/git/test_repository % ls -alF total 32 drwxr-xr-x 2 git taiwan 512 Nov 15 10:33 ./ drwxr-xr-x 4 git taiwan 512 Nov 15 10:33 ../
新しい空のリポジトリーを作成するでござる。ここでは、 test_repository という名前のリポジトリーを作成してみるで ござる。
% pwd /home/git/test_repository % git init --bare hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch
hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /home/git/test_repository/ % ls -alF total 144 drwxr-xr-x 6 git taiwan 512 Nov 15 10:35 ./ drwxr-xr-x 4 git taiwan 512 Nov 15 10:33 ../ -rw-r--r-- 1 git taiwan 23 Nov 15 10:34 HEAD -rw-r--r-- 1 git taiwan 66 Nov 15 10:34 config -rw-r--r-- 1 git taiwan 73 Nov 15 10:34 description drwxr-xr-x 2 git taiwan 512 Nov 15 10:34 hooks/ drwxr-xr-x 2 git taiwan 512 Nov 15 10:34 info/ drwxr-xr-x 4 git taiwan 512 Nov 15 10:34 objects/ drwxr-xr-x 4 git taiwan 512 Nov 15 10:34 refs/
これで、 server 側の準備はできたようでござる。このあとは、別の計算機上 で作業をするでござる。 server ではない別の計算機で test_repository のためのファイルを作り、それを commit し てみるでござる。また、 git server は abc.astro.ncu.edu.tw とし、 git server で動いている ssh server は port 54321 で通信している とするでござる。
% mkdir test_repository % cd test_repository % git init hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch
hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /home/daisuke/test_repository/.git/ % echo "# test_repository" > README.md % git status On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) README.md nothing added to commit but untracked files present (use "git add" to track) % git add README.md % git status On branch master No commits yet Changes to be committed: (use "git rm --cached ..." to unstage) new file: README.md % git commit -m "creating README.md" [master (root-commit) 4ef5324] creating README.md 1 file changed, 1 insertion(+) create mode 100644 README.md % git remote add mygit ssh://git@abc.astro.ncu.edu.tw:54321/home/git/test_repository % git push mygit master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 243 bytes | 48.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To ssh://abc.astro.ncu.edu.tw:54321/home/git/test_repository * [new branch] master -> master
もう一つ、ファイルを追加してみるでござる。
% emacs hello.py % cat hello.py #!/usr/pkg/bin/python3.10 # Time-stamp: <2023/11/15 11:02:55 (Taiwan_Standard_Time_UT+8) daisuke> # printing a sentence "Hello, world!" print (f'Hello, world!') % git status On branch master Untracked files: (use "git add
..." to include in what will be committed) hello.py nothing added to commit but untracked files present (use "git add" to track) % git add hello.py % git status On branch master Changes to be committed: (use "git restore --staged ..." to unstage) new file: hello.py % git commit -m "adding hello.py" [master f10ea7b] adding hello.py 1 file changed, 6 insertions(+) create mode 100755 hello.py % git push mygit master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 6 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 423 bytes | 423.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To ssh://abc.astro.ncu.edu.tw:54321/home/git/test_repository 4ef5324..f10ea7b master -> master
リポジトリー test_repository に、 README.md と hello.py が追加されたので、更に別の計算機でこれらのファ イルを取得してみるでござる。
% git clone ssh://abc.astro.ncu.edu.tw:54321/home/git/test_repository Cloning into 'test_repository'... remote: Enumerating objects: 6, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (4/4), done. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (6/6), done. % ls test_repository % ls test_repository/ README.md hello.py