git merge 関連
# 事前条件(ff土台がfetchしてあること)
# fast-wofardマージを行う。できないならマージ中止
git merge --ff-only <ブランチ名>
# ffできる状態でもマージコミットを作る
git merge --no-ff <ブランチ名>
詳細: https://gemini.google.com/share/325c5ad57674
# git 追跡対象のみ対象としてtreeで展開する
git ls-files | tree --fromfile .
# unstaged も含める
git ls-files -c -o --exclude-standard | tree --fromfile .
# git grep
git -C path/to/your-repo grep "archive"
# ファイル名置換のbefore, after
❯ fd archive | sed "p;s/archive/index/"
# ファイル名の一括 git mv
❯ fd archive | while read f; do echo "git mv $f ${f/archive/index}"; done
git mv archive.md index.md
git mv templates/archive.md templates/index.md
git mv tools/generate_archive.py tools/generate_index.py
❯ fd archive | while read f; do echo "git mv $f ${f/archive/index}"; done | bash
# staged, uncommited の diff を見る
git diff --staged
# commitエディタでdiffを見る
git commit --verbose
# ファイル名の列挙->変更のbefore/after
git status -v