git
VCS version controle system detached head で commit してしまった場合は、マージするか cherry-pick すれば ok
fixup と squash の違い
If you want to fold two or more commits into one, replace the command "pick" for the second and subsequent commits with "squash" or "fixup". If the commits had different authors, the folded commit will be attributed to the author of the first commit. The suggested commit message for the folded commit is the concatenation of the first commit’s message with those identified by "squash" commands, omitting the messages of commits identified by "fixup" commands, unless "fixup -c" is used.
^ と ~
caret and tilde
キャレットとチルダ
pager option は CLI 作るときの参考になりそう
ある merge に含まれる内容を切り出したい
merge commit を単純に cherry-pick はできない
どちらの親を採用すべきか不明なため
git cherry-pick -m 1 <id>
-m で parent number を指定している
通常の merge commit では、取り込まれたブランチが 1 になるらしいが、よくわからない
Merge strategy
最近は ort という新しい merge strategy が default みたい
git cherry-pick <ID> --strategy=ort -Xtheirs みたいな感じ
これは conflict したら pick される側のコードを採用する(strategy は ort)
-Xtheirs は ort の option
--strategy=ours があるので注意
commit message
commit message に # を含めたい時どうするか
git commit --cleanup=scissors を使うと、ハサミマーク以下が消える。それより上は # をコメントアウトに設定していても含まれる。
どの commit でバグが入ったかみつけるのを支援してくれる
conflicts
working directory, working tree