コンテンツにスキップ

Tips

最終更新日: 2021-04-01

パターンを思い付く都度に更新される予定。

–skip-worktree の一括解除と一括付与

  • ブランチの切替時に一時的に --skip-worktree にしているものの変更を隠したり、再現したい時に便利
  • .env のような個々人の環境によって異なるものがリポジトリ管理対象になっているときに使える

–no-skip-worktree -> push stash

ブランチで --skip-worktree となっている対象の変更を隠す

1
2
3
4
# --skip-worktreeの一括解除
git ls-files -v | grep ^S | sed -r 's/^S.(.+)$/\1/g' | xargs git update-index --no-skip-worktree
# 出てきた変更を全てスタッシュに入れる
git stash push -q -m stash_skiptree

pop stash -> –skip-worktree

前項で隠した変更を再現して、--skip-worktree し直す

1
2
3
4
# stashから戻す
git stash pop -q
# この時点での差分に対し--skip-worktree
git diff --name-only HEAD | xargs git update-index --skip-worktree

https しか使えない Git で認証情報を保存する

SSH が使えない悲劇に出会った時に。CentOS 7.7 で確認。

パスワードは平文保存されるっぽいので、そこら辺は注意が必要。

  1. 認証情報をキャッシュする設定にする
    1. git config --global credential.helper cache
  2. キャッシュのタイムアウトを 1 年くらいにしとく
    1. git config --global credential.helper 'cache --timeout=31536000'