🔁 端末間同期の手順

MacBook Pro / Air / Mac mini 共通 — GitHub でプロジェクトを最新に保つ
正本: ~/Downloads/works ⇄ github.com/senao-routine/works(private / branch=main)
鉄則:「使い始める前に pull、離れる前に push」。1台ずつ順番に使う(同時編集は競合のもと)。

もう一つの端末で「一番最初にやること」

① まだ works が無い端末(初回だけ・1回きり)

# 1. リポジトリを取得(ホームのDownloads配下=正本と同じ場所に置く)
cd ~/Downloads
git clone https://github.com/senao-routine/works.git works
cd ~/Downloads/works

# 2. このリポの pull を rebase方式に(競合予防・端末ごとに1回だけ)
git config pull.rebase true

# 3. 動いているか確認
git status                # "up to date" ならOK
ls "今回のアウトプット"    # Driveログイン済みなら中身が出る(初回セットアップ③参照)

ここまでで コードとスキルは最新になる。ただし動画・画像・秘密ファイル・venv は別途用意が要る(→下の「新しいMacの初回セットアップ」)。

② すでに works がある端末(2回目以降・作業を始めるたび最初に)

cd ~/Downloads/works
git pull                  # ← 作業前の“最初の1コマンド”。これで最新になる

git pull が競合や rejected で止まったら → 下の「こういうとき(トラブル別)」へ。

A作業した端末 → GitHubへ最新を上げる(送る側)

cd ~/Downloads/works
git add -A
git commit -m "作業内容を一言で"
git pull --rebase        # 先に相手の変更を取り込む(競合予防)
git push origin main

Bもう片方の端末 → 最新に更新する(受ける側)

cd ~/Downloads/works
git status               # まず未保存の変更がないか確認
git pull                 # このリポは pull.rebase=true 設定済み → 自動でrebase

git statusclean(何も出ない)なら git pull だけでOK。
未保存の変更が残っている状態で更新したいときは退避してから:

git stash
git pull
git stash pop            # 退避した変更を戻す

🧰 こういうとき(トラブル別)

症状対処
git pushrejected(相手が先にpush済み) git pull --rebase してから git push
git pull競合(CONFLICT) で止まった 競合ファイルを手で直す → git add <ファイル>git rebase --continue。分からなければ git rebase --abort で一旦戻して相談
ローカルの変更を全部捨てて相手に合わせたい git fetch origin && git reset --hard origin/mainローカル変更は消えるので注意)
どっちが新しいか分からない git log --oneline -5(各端末で見比べ)/ git fetch && git status

!gitに“乗らない”もの(別Macで別途用意が必要)

.gitignore で除外されているため、git pull しても入ってこない。新しいMacの初回だけ用意する:

  1. Drive symlink の実体 今回の収録動画 完成動画(アップロード) 投稿画像 サムネイル資料 今回のアウトプット OpenClawデータ OpenClaw作成
    → 各Macで Google Drive アプリに同じアカウント(senao715senao@gmail.com)でログインしていれば、symlink先 …/マイドライブ/MacProBook共有/… が自動で解決する。ログインしていないと動画/画像系が全滅するので最優先。
  2. 秘密ファイル.env(600)、Blog_RoutineLabo/AI_prompt(Auto)/wordpress_config.json、各種 token*.json / credentials.json
    → gitに無い。中央 .env は別管理。安全な方法(AirDrop・パスワード管理・Drive外の手渡し)で各Macに配置。
  3. venv(Python仮想環境)venv/ は除外。各Macで再構築が必要。
    ・Playwright系(note/X投稿)は Python 3.12 固定
    Blog_RoutineLabo/AI_prompt(Auto)./venv/bin/python3.14 を直接叩く(activate破損のため)
  4. 動画/音声*.mp4 *.mov *.mp3 *.wav):容量が大きいので git 非対象。受け渡しは Drive 経由。

🆕 新しいMac(Air / mini)の初回セットアップ

# 1) 取得
git clone https://github.com/senao-routine/works.git ~/Downloads/works
cd ~/Downloads/works

# 2) このリポの pull を rebase方式に(競合予防・端末ごとに1回)
git config pull.rebase true

# 3) Google Drive アプリに senao715senao@gmail.com でログイン(symlink解決)
#    → 確認:  ls "今回のアウトプット"  が中身を返せばOK

# 4) 秘密ファイルを配置(.env / wordpress_config.json / token*.json)※上の「乗らないもの」参照
chmod 600 .env

# 5) 必要なvenvを再構築(使うツールの分だけ)
#    例: note投稿  cd Blog_RoutineLabo/note_auto_publisher && python3.12 -m venv venv

# 6) 配線チェック
bash .claude/verify-works.sh

💡 補足:Claude Code のセッション中は半自動で同期される

.claude/settings.json のフックが動作:

タイミング動作
セッション開始自動 pull(ff-only)
毎ターン終了未pushコミットを自動 push
セッション終了未コミット変更を自動 commit + push(メッセージは機械的な auto:

そのため Claude Code を使っている限りは概ね勝手に同期されるが、意味のあるコミットは手動が基本(auto: に埋もれさせない)。ターミナルだけで作業する日は上記 A / B を手で回す。