• Git Advanced

    rebase family A,B两分支都在共同的基上有各自的修改,如果希望把A分支(当前分支)的修改建立在B分支修改的基础上,即:共同的基 + B分支的修改 + A分支的修改: git rebase <branch-B> 如果B分支在远程,可以拉取的同时rebase: git pull --rebase origin <branch-B> 批量处理之前的n个commit:改名、多合一、删除 git rebase -i HEAD~n pick保留,s/squash合并,r/reword改名,d/drop删除 — cherry-pick 将某个分支的连续某几个commit合并到当前分支 git cherry-pick <commit-id-begin>.. <commit-id-end>
  • 49のCoding事件簿

    记录各种奇怪的bug和解决过程。 “事件簿”是因为debug时抽丝剥茧的过程和阅读推理小说有异曲同工之处。
  • GDB Notes

    参考教程:https://mp.weixin.qq.com/s/w_Z2ftOnb4VtB4jUaMF0fw 运行gdb:gdb 可执行文件,例如gdb /root/abacus-develop/build/abacus 用gdb调试程序:r (run) 断点:b 文件:行数,例如b /abacus/source/module_cell/module_symmetry/symmetry.cpp:1049 查看所有断点:i b (info breakpoints)(可以看到每个断点的编号) 删除断点:clear 删除特定断点:delete 断点编号。可以一次操作多个,比如delete 1-4 设置变量断点(当变量值改变时停下,显示下一行的内容):watch 变量名 查看变量的值 单次:p 变量名 或 print 变量名 每个断点都显示:display 变量名 查看显示列表: info display (可以看到每个显示项的编号) 取消显示:undisplay 编号 查看数组的值(p/print/display) display *数组名@区间长度,例如 display *rotpos@12 继续,往下运行一步:n (next) 继续,直至下一个断点:c (continue) 查看调用堆栈:bt (backtrace),同where
  • 世界线收束

    梦开始的地方。 不必去追悼那有始无终的第一段工作,以及之后没能战胜内心抗拒导致失去的大半年。这一切连锁反应,杂乱无章,都可以视作铺垫,一切都是为了让4月的世界线收束来得更加激动人心。
  • 2
  • 3