git

git_rename

Why

项目多了,难免会有重命名的时候,重命名本身没什么问题,可是加上gitignore中的*.pyc*~可能会出现些问题…

Q

重命名的时候一般不会有问题,可是在分支切换的同时,由于存在ignore的文件,分支的切换并不会那么正确。
往往会多出重命名前或重命名后的文件夹,多的原因就是文件夹下有被忽略的临时文件。

原因很简单,所以解决也不难,删除多余的文件夹,一切正常了。

总结

git在重命名文件夹后切换分支可能由于ignore临时文件的存在多出重命名前后的文件夹。

push -f

不要用root用户,不要用force参数,这都是老生常谈的话题了。
权利越大,责任越大,可是总是有人使用…

git push -f

实话是说,使用force闯祸了…
git提交的多了,难免有些错误想要去掉,干净的提交履历确实好看,也更容易表明做了些什么。
一行代码,第一次改错了,push到master分支了,就一行。(就一行,唯一的一行,所以唯一的一次没有另开分支。)
所以我就回退了一个版本,重新修改force提交了,按说也没有多少问题,可是CI(持续集成),拉到了那个错误提交的版本,然后无法拉到其它更新的版本了…

FiX IT

首先我想的是,恢复出那个版本。习惯性的新开分支,锁定到第一次错误提交后的那个版本,然后修改,然后pull request。那个版本出现了,不是孤立的了,可是CI仍然不能拉到更新的版本。。。

reset

重新来,新开分支,reset一堆修改,然后pull request。“改或者不改,CI的版本就在那里,不增不减。”

最后,我大师出马了。。。危难时刻还是有大师好啊…

总结

自我总结,本次Fix失败,主要原因是一直新开分支,采用了错误的方法。丢失了原本该有的胆识,不过话说回来,master分支搞错是会死人的。(虽说git仓库还是容易恢复,不易于被恶意破坏)
解铃还须系铃人,force闯的祸,应该用force去修复,最后感谢大师。