📢 この記事は ChatGPT によって翻訳されました
はじめに
Gitを使えば、友人とのコード管理や同期が簡単になります。特に静的サイトが好きな筆者にとっては、GitでWebファイルを同期できるのは非常に便利です。
Gitのインストール
ROOTユーザーで以下のコマンドを順に実行:
1
2
| yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install git
|
ユーザーの作成
Gitサービス用に専用のユーザーとグループを作成します。
1
2
| groupadd git
useradd git -g git
|
公開鍵の取得
ローカルPC(Windows)の公開鍵は %UserProfile%/.ssh/
にある id_rsa.pub
ファイルです。
ファイルが存在しない場合、cmd
で以下を実行:
これにより鍵ペアが生成されます。
公開鍵の登録
生成した公開鍵を /home/git/.ssh/authorized_keys
に1行ずつ追加します。ファイルが存在しない場合は以下で作成:
1
2
3
4
5
| cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
|
vi などで鍵を貼り付けて保存します。
Gitリポジトリの初期化
Gitリポジトリのディレクトリを /home/gitrepo/repo.git
にします:
1
2
3
4
5
| cd /home
mkdir gitrepo
chown git:git gitrepo
cd gitrepo
git init --bare repo.git
|
その後、リポジトリの所有者を変更:
1
| chown -R git:git repo.git
|
リポジトリのクローン
1
| git clone git@サーバーIP:/home/gitrepo/repo.git
|
ディレクトリへの自動同期
Gitのhook機能を使います。
1
2
| cd /home/gitrepo/repo.git/hooks
vi post-receive
|
以下のように記述:
1
2
| #!/bin/sh
git --work-tree=/home/www/hexo --git-dir=/home/gitrepo/repo.git checkout -f
|
ファイルに実行権限を付与:
1
2
| chmod +x post-receive
chown -R git:git /home/gitrepo/repo.git
|
コードの更新
単純にローカルコードを更新するだけなら:
正式な手順:
1
2
3
4
5
| git status
git checkout -- [ファイル名]
git branch
git checkout リモートブランチ名
git pull
|
その他コマンド
1
2
3
4
| git branch # ブランチ一覧
git checkout aaa # aaaブランチへ切り替え
git branch aaa # aaaブランチ作成
git checkout -b aaa # aaaブランチ作成&切り替え
|
gitユーザーのシェルログインを禁止
セキュリティ上の理由から、git
ユーザーのシェルログインを無効化:
以下のように変更:
1
2
| -git:x:1004:1004::/home/git:/bin/bash
+git:x:1004:1004::/home/git:/usr/bin/git-shell
|
これでgitユーザーはSSHでGitを使用できますが、シェルにはログインできません。
参考リンク