Siga o conselho técnico nas respostas tecnicamente orientadas; é uma coisa boa. Minha resposta é mais sobre atitude.
Sentir-se mal por cometer o tipo de erro que todo desenvolvedor comete ocasionalmente é apenas um absurdo e não ajuda você a não cometer esse tipo de erro no futuro. Enquanto você se sente mal, a construção ainda está quebrada, sabia? E então seu trabalho é evitar erros, o que eu sei que faz com que sair da cama de manhã seja uma aventura emocionante todos os dias, certo?
Ouvi falar de empresas nas quais o check-in de código quebrado é motivo de vergonha pública. Eu não consigo nem pensar no tipo de pensamento distorcido, de garoto de fraternidade e de alto nível que levaria a esse comportamento. Dificilmente poderia haver QUALQUER COISA mais contraproducente para um líder ou gerente de equipe.
Portanto, não se bata. Todos nós já fizemos isso. Provavelmente eu me custei meio dia por semana com erros tolos, e venho fazendo isso há muito tempo. É assim que parece escrever código - você está constantemente se baseando no que parece ser suas próprias inadequações. O que torna um profissional um profissional não é uma qualidade mítica de nunca cometer erros (incluindo os grandes às vezes), mas como eles respondem aos erros que cometem.
Se há um mantra que eu poderia incutir em todos os desenvolvedores com quem trabalho, é este: você não é seu código . Você escreve código. Você o escreve da maneira mais eficiente e possível. Então você vai para casa. Se você equiparar seu valor ou valor próprio a uma pessoa com a qualidade do seu código, estará perdendo a noção do que realmente é.