前提:
😊
リトルサーバーを使ってみた
参考記事:
git用のディレクトリを作る
とりあえずリトルサーバー側にgit作業用ディレクトリを作ります。
SSH接続してpwd
コマンドで現在位置を確認する。
pwd
/home/ユーザーID
ls
log pub
公開ディレクトリは「pub」なので、pubよりも上の階層にgit用のディレクトリを作ります。
名前はわかりやすく「git」にします。
mkdir git
ls
git log pub
ベアリポジトリの作成
作成したgitディレクトリに移動してベアリポジトリのオプション--bare
をつけてgit init
します。
cd git
git init --bare /home/ユーザーID/git/my-tegalog-skin.git
//出力
Initialized empty Git repository in /home/ユーザーID/git/my-tegalog-skin.git/
ここがリモートリポジトリになります。
ベアリポジトリとは? (by ChatGPT 3.5)
Gitの"Bare Repository"(ベアリポジトリ)とは、通常のリポジトリとは異なる特殊な形態のGitリポジトリです。
通常、Gitリポジトリには、プロジェクトのコードや履歴を含む作業用のディレクトリと、リモートリポジトリとしての役割を果たす.gitディレクトリが含まれます。この.gitディレクトリには、プロジェクトの全てのバージョン履歴やブランチ、コミット、設定情報などが格納されています。
一方、ベアリポジトリは、作業用のディレクトリが存在せず、リモートリポジトリとしてのみ機能する特殊なリポジトリです。ベアリポジトリは、プロジェクトの実際のコードファイルを持たず、.gitディレクトリしか含みません。
ノンベアリポジトリの作成
リトルサーバー上の作業用ディレクトリに移動して普通にgit init
します。
cd /home/ユーザーID/pub
cd path/to/directory
mkdir my-tegalog-skin
cd my-tegalog-skin
git init
// 出力
Initialized empty Git repository in /home/ユーザーID/pub/path/to/directory/my-tegalog-skin/.git/
リモートリポジトリにさっき作成したベアリポジトリを追加。
git remote add origin /home/ユーザーID/git/my-tegalog-skin.git
git remote -v
origin /home/ユーザーID/git/my-tegalog-skin.git (fetch)
origin /home/ユーザーID/git/my-tegalog-skin.git (push)
‼️.gitディレクトリ以下のフォルダ/ファイルにアクセスできないようにする
これはよくないので.htaccessファイルで.gitにアクセスしても404を返すように対策します。
RedirectMatch 404 /\.git
参考記事:
gitユーザー登録
そういえばユーザー登録してなかったのでここで作業。
git config --local user.name [USERNAME]
git config --local user.email [MAILADDRESS]
// 確認
git config user.name
初めてのコミット(空コミット)
git commit --allow-empty -m "initial commit"
ちゃんと意味のあるコミットを作ってもいいんでしょうが今回は初回--allow-empty
のオプションを付けて空コミットで。ファイルなどは何もありません。
空でもコミットしたのでブランチも作成されたしpushもできます。
git branch
* master
git push origin master
Counting objects: 2, done.
Writing objects: 100% (2/2), 159 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To /home/ユーザーID/git/my-tegalog-skin.git
* [new branch] master -> master
🤔git sparse checkout を有効にして一部のサブディレクトリだけをチェックアウトできるようにする
ローカルで開発していくとして、その全部をwebに公開されているフォルダに置くことは望んでません。
というわけで、一部だけを同期したい場合こんな方法があるらしい。まだちゃんと試せていない。
参考記事のようにまっさらではない状態だけども(空コミットがある)有効化しておく。
cd path/to/directory
git config core.sparsecheckout true
cat .git/config
//出力
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
sparsecheckout = true
参考記事:
ローカルリポジトリを作成
作成と言ってもサーバーに作成したベアリポジトリをクローンしてくるんですが。
SSH設定ファイルが既にあるので、ローカルにクローンしてくるときはalias部分をHostに書き換えてクローンできる。
git clone alias:/home/ユーザーID/git/my-tegalog-skin.git
それではローカルで作業に入る…まえに。
developブランチ作成
とりあえずブランチでも切りましょう。
git checkout -b develop
git branch
* develop
master
ローカルで変更を加える(develop上での作業)
今回はてがろぐスキンを作るぞ~という気持ちでやっているので、
- skin-cover.html
- skin-onelog.html
を中身は空っぽで作成します。touchコマンド使えると複数ファイルも一度に作成できちゃうんだなあ。
touch {skin-cover.html,skin-onelog.html}
次から実際にマークアップしたりなんだりしていきます。