2025/02/06(木)ゆるGIT学習
今まで仕事ではもっぱらSubversionを使っていた。
WindowsなのでクライアントはTortoiseSVN
新しい仕事でgitを使うことになったのでいろいろ再確認していく。
趣味で使う分には雰囲気で操作しても問題ないんだが、仕事だとさすがに?って思ったので
誤った記載があったら修正しますんでコメントください
基本
originってなんだよ
リモートリポジトリのエイリアス
以下は同じ意味になる
git fetch origin master
git fetch git@github.com:hoge/fuga.git master
HEADってなんだよ
作業中ブランチの最新コミット
コマンド
clone
ざっくりfetch
+checkout
リモートの最新を取得し、デフォルトブランチをチェックアウトする。
gitのデフォルトブランチ名はmaster
そういえばgithubは数年前からmain
になったね
pull
内部的にはfetch
+ merge
fetch
でorigin/master
が最新に更新される
merge
でmaster
ブランチに最新が取り込まれる
fetch
リモートの最新を取り込む
ローカルブランチには反映されない
origin/master
は最新になるがmaster
はそのまま
merge
2つの異なるブランチの変更を統合する。
この際、マージコミット
という特別なコミットが生成される。
A---B---C-----M(マージコミット)
| /
D---E
rebase
ブランチの変更を別のブランチの先頭に付けなおす
いまいち動作を把握しきれていない...
- 元の状態
master: A---B---C---D---E . | dev: D'---E'
dev
ブランチ内でgit rebase master
を処理master: A---B---C---D---E . | dev: D---E---D'---E'
master
ブランチ内でgit rebase dev
を処理master: A---B---C---D---E---D'---E'
checkout
作業ブランチの切り替え
branch
新しいブランチを作成する。
git branch -a
ですべてのブランチ、作業中のブランチを表示する。
push
ローカルの変更をリモートへ反映させる
2024/12/15(日)ssh設定覚え書き
SSHの設定
鯖:Ubuntu 24.04.1LTS (openssh)
倉:Windows11 Pro (teraterm)
公開鍵の設定
クライアント側(Windows)作業
- 公開鍵の作成
パスフレーズ無しで作成。
生成場所を聞かれるので任意の場所に保存
> ssh-key-gen
サーバー側(Ubuntu)作業
鯖(Ubuntu)側で公開鍵を設定する
~/.ssh/authorized_keys
に作製した公開鍵を書き込むパスワードでのログインを禁止する
/etc/ssh/sshd_config
内の以下設定を変更
- PasswordAuthentication yes + PasswordAuthentication no
以上
2022/10/26(水)github actions + vercel でスプラ3のスケジュール画像を自動生成&配信する環境を作った
動作概要
- github actionsのスケジューリング機能で2時間おきに画像生成スクリプトを走らせる
- 生成画像をgithubにpushしてvercelで自動デプロイ、publicフォルダの静的コンテンツとして配信できるようにした。
https://github.com/yotsugi-vip/vip-splat3-schedule
画像生成
生成スクリプト
上記APIから24時間分のスケジュールをjsonで取得、cli上での動作となるのでnode-canvasでjsonの内容を画像として吐き出すようにした。
オフセット設定がめんどくさかったけどまぁまぁ見れる形で出力できるようにした。
自動実行
- github actions
github actionsのスケジューリング機能を使って2時間おきに画像生成スクリプトを実行するように指定
画像生成後はnextjsのpublicフォルダに格納しcommit & pushまで実行。
vercel上でpushを検知して自動ビルドしてくれる。
失敗談
vercelの仕様をよく読んでなかった点
最初期の環境の構成として
定期POST → API実行 → 生成画像公開の手順で作成したのだが、
vercelのpublicフォルダは書き込み不可なのを把握してなかった。
github actionsのスケジューラのTZがJSTじゃない
スプラトゥーンのステージは奇数時毎に更新されるのでスケジューラを
1,3,5,7,9,11,13,15,17,19,21,23時に設定したが、実際動作させると1時間ずれて実行されていた。
原因はgithub actionがUTC基準で動いていたためJSTの+9時間差で実行されていたから。
スケジューラはUTC基準で偶数時毎に起動するように変更した。