[{"data":1,"prerenderedAt":365},["ShallowReactive",2],{"pt-BR-article-\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode":3,"pt-BR-related-posts-\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode":205},{"id":4,"title":5,"articleCover":6,"articleCoverEmbed":7,"articleCoverEmbedUploadDate":8,"articleCoverHeight":9,"articleCoverWidth":10,"authorId":11,"body":12,"categoriesIds":188,"description":191,"enAlternateSlug":192,"extension":193,"meta":194,"navigation":195,"path":196,"ptBrAlternateSlug":197,"publishedAt":198,"seo":199,"sitemap":200,"stem":202,"updatedAt":201,"wordCount":203,"__hash__":204},"blog\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode.md","Perdeu arquivos no Git sem commit? Veja como recuperar pelo VS Code","\u002Fimages\u002Fblog\u002Fcomo-recuperar-arquivos-perdido-no-git-pelo-vscode.webp","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FxTo9turfbF0?si=8mMT-ttdMpGjd37X","2024-03-19T07:00:49-07:00",720,1280,"thiago-nunes-batista",{"type":13,"value":14,"toc":180},"minimark",[15,35,43,50,61,73,78,84,87,114,117,121,124,146,150,153,167,171,177],[16,17,18,19,23,24,23,27,30,31,34],"p",{},"O Git é o sistema de controle de versão de código mais utilizado no mercado. Normalmente, nós programadores apenas arranhamos a superfície do que essa ferramenta é capaz de fazer. No dia a dia, acabamos utilizando apenas comandos básicos como ",[20,21,22],"code",{},"pull",", ",[20,25,26],{},"commit",[20,28,29],{},"merge"," e ",[20,32,33],{},"push",".",[16,36,37,38,42],{},"No entanto, o Git é uma ferramenta poderosa e também complexa. A sua utilização incorreta pode resultar em problemas sérios, como a perda de código que ainda não havia sido ",[39,40,41],"em",{},"commitado"," no repositório. Se isso já aconteceu com você, provavelmente bateu aquele desespero ao pensar que todo o tempo investido naquele código foi perdido.",[16,44,45,46,34],{},"Se você utiliza o VSCode — um dos editores de código mais populares entre programadores — eu tenho uma ótima notícia: ",[47,48,49],"strong",{},"na maioria dos casos, o seu código não foi perdido",[16,51,52,53,60],{},"Neste artigo, vou te mostrar como utilizar uma funcionalidade nativa do ",[54,55,59],"a",{"href":56,"rel":57},"https:\u002F\u002Fcode.visualstudio.com",[58],"nofollow","Visual Studio Code"," para recuperar arquivos perdidos, mesmo sem um commit no Git.",[16,62,63,64,67,68,34],{},"A funcionalidade que vamos utilizar se chama ",[47,65,66],{},"Local History",", e ela foi adicionada oficialmente ao VSCode na versão ",[54,69,72],{"href":70,"rel":71},"https:\u002F\u002Fcode.visualstudio.com\u002Fupdates\u002Fv1_66#_local-history",[58],"1.66, lançada em março de 2022",[74,75,77],"h2",{"id":76},"a-solução","A solução",[16,79,80,81,83],{},"O ",[47,82,66],{}," mantém um histórico local das alterações feitas nos arquivos editados pelo VSCode, permitindo que você volte no tempo e restaure versões anteriores do código.",[16,85,86],{},"Para recuperar um arquivo perdido, siga os passos abaixo:",[88,89,90,99,105,108,111],"ol",{},[91,92,93,94],"li",{},"Pressione ",[95,96,98],"prose-kbd",{"value":97},"F1"," para abrir a paleta de comandos do VSCode",[91,100,101,102],{},"Pesquise pela opção ",[47,103,104],{},"“Local History: Find Entry to Restore”",[91,106,107],{},"Após selecionar a funcionalidade, procure pelo nome do arquivo que você perdeu",[91,109,110],{},"O VSCode exibirá todas as versões salvas desse arquivo, juntamente com os horários das alterações",[91,112,113],{},"Escolha a versão desejada e clique para restaurar o código",[16,115,116],{},"Pronto! Seu arquivo será recuperado exatamente como estava naquele momento.",[74,118,120],{"id":119},"pontos-importantes-sobre-o-local-history","Pontos importantes sobre o Local History",[16,122,123],{},"Antes de sair confiando cegamente nessa funcionalidade, é importante entender algumas limitações:",[125,126,127,133,140,143],"ul",{},[91,128,80,129,132],{},[47,130,131],{},"Local History é armazenado apenas localmente",", ou seja, se você formatar o computador ou apagar os dados do VSCode, esse histórico será perdido",[91,134,135,136,139],{},"Ele ",[47,137,138],{},"não substitui o Git"," e não deve ser usado como estratégia de versionamento",[91,141,142],{},"O histórico tem um limite de tempo e espaço, então versões muito antigas podem ser descartadas automaticamente",[91,144,145],{},"Funciona apenas para arquivos que foram abertos e editados no VSCode",[74,147,149],{"id":148},"boas-práticas-para-evitar-perdas-de-código","Boas práticas para evitar perdas de código",[16,151,152],{},"Mesmo com essa funcionalidade disponível, o ideal é evitar esse tipo de problema no dia a dia. Algumas boas práticas ajudam bastante:",[125,154,155,158,161,164],{},[91,156,157],{},"Faça commits pequenos e frequentes",[91,159,160],{},"Utilize branches para testes e experimentações",[91,162,163],{},"Evite trabalhar por longos períodos sem versionar suas alterações",[91,165,166],{},"Sempre revise o que será descartado antes de executar comandos destrutivos no Git",[74,168,170],{"id":169},"conclusão","Conclusão",[16,172,173,174,176],{},"O VSCode é um editor de código extremamente poderoso. Ele possui tantas funcionalidades e atalhos que é praticamente impossível conhecer tudo o que a ferramenta oferece. O ",[47,175,66],{}," é uma dessas funcionalidades pouco conhecidas.",[16,178,179],{},"Se este artigo te ajudou a recuperar um código perdido, considere compartilhá-lo com outros devs. Pode salvar o projeto (e a sanidade) de alguém 😄",{"title":181,"searchDepth":182,"depth":182,"links":183},"",2,[184,185,186,187],{"id":76,"depth":182,"text":77},{"id":119,"depth":182,"text":120},{"id":148,"depth":182,"text":149},{"id":169,"depth":182,"text":170},[189,190],"git","vscode","Aprenda a recuperar alterações de código perdidas utilizando uma funcionalidade do Vscode chamada Local History que salva diferentes versões do seu código.","recovering-lost-files-in-git-with-vscode","md",{},true,"\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode","como-recuperar-arquivos-perdidos-no-git-pelo-vscode","2024-05-15",{"title":5,"description":191},{"loc":196,"lastmod":201},"2026-01-07","blog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode",506,"sIMmRu7RjxCyaiAYn8v_3ZwXWOlyla1_zDLGhwVtXO4",[206,214,223,230,237,245,253,260,268,270,277,285,291,300,307,314,321,328,335,343,350,357],{"id":207,"path":208,"title":209,"articleCover":210,"categoriesIds":211,"publishedAt":213},"blog\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem.md","\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem","A maneira correta de utilizar a nomenclatura BEM","\u002Fimages\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem.webp",[212],"css","2024-05-05",{"id":215,"path":216,"title":217,"articleCover":218,"categoriesIds":219,"publishedAt":222},"blog\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n.md","\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n","Como Adicionar Caracteres Especiais em Traduções do i18N","\u002Fimages\u002Fblog\u002Fi18n\u002Fi18n-caracteres-especiais-no-nuxtjs-thumb.webp",[220,221],"nuxt","vuejs","2025-01-29",{"id":224,"path":225,"title":226,"articleCover":227,"categoriesIds":228,"publishedAt":229},"blog\u002Fblog\u002Fcomo-adicionar-o-google-tag-manager-no-seu-website-com-nuxt-3.md","\u002Fblog\u002Fcomo-adicionar-o-google-tag-manager-no-seu-website-com-nuxt-3","Como adicionar o Google Tag Manager no seu website com Nuxt 3","\u002Fimages\u002Fblog\u002Fcomo-adicionar-google-tag-manager-em-projeto-com-nuxt-3.webp",[220,221],"2024-08-15",{"id":231,"path":232,"title":233,"articleCover":234,"categoriesIds":235,"publishedAt":236},"blog\u002Fblog\u002Fcomo-configurar-chave-ssh-no-git-para-usar-no-github.md","\u002Fblog\u002Fcomo-configurar-chave-ssh-no-git-para-usar-no-github","Chave SSH no Git: Como Configurar chave SSH para usar no GitHub","\u002Fimages\u002Fblog\u002Fgit\u002Fcomo-criar-e-configurar-chave-ssh-no-github-thumb.webp",[189],"2025-02-04",{"id":238,"path":239,"title":240,"articleCover":241,"categoriesIds":242,"publishedAt":244},"blog\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api.md","\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api","Como consumir uma API no JavaScript com a Fetch API","\u002Fimages\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api.webp",[243],"javascript","2024-09-05",{"id":246,"path":247,"title":248,"articleCover":249,"categoriesIds":250,"publishedAt":252},"blog\u002Fblog\u002Fcomo-criar-dados-estruturados-com-nuxtjs.md","\u002Fblog\u002Fcomo-criar-dados-estruturados-com-nuxtjs","Como Adicionar Dados Estruturados no Nuxt.JS","\u002Fimages\u002Fblog\u002Fseo\u002Fstructured-data\u002Fstructured-data-thumb-1.webp",[220,221,251],"seo","2025-01-22",{"id":254,"path":255,"title":256,"articleCover":257,"categoriesIds":258,"publishedAt":259},"blog\u002Fblog\u002Fcomo-funciona-o-sistema-de-rotas-no-nuxt.md","\u002Fblog\u002Fcomo-funciona-o-sistema-de-rotas-no-nuxt","Rotas no Nuxt: dinâmicas, aninhadas e catch-all","\u002Fimages\u002Fblog\u002Fnuxt\u002Fsistema-de-rotas-no-nuxtjs-thumb.webp",[220,221],"2025-03-12",{"id":261,"path":262,"title":263,"articleCover":264,"categoriesIds":265,"publishedAt":267},"blog\u002Fblog\u002Fcomo-lidar-com-inveja-de-outros-programadores.md","\u002Fblog\u002Fcomo-lidar-com-inveja-de-outros-programadores","Como Lidar com Inveja de Outros Programadores","\u002Fimages\u002Fblog\u002Fcarreira\u002Finveja-de-programadores-com-quem-se-destaca.webp",[266],"career","2025-08-29",{"id":4,"path":196,"title":5,"articleCover":6,"categoriesIds":269,"publishedAt":198},[189,190],{"id":271,"path":272,"title":273,"articleCover":274,"categoriesIds":275,"publishedAt":276},"blog\u002Fblog\u002Fcomo-usar-middlewares-no-nuxtjs.md","\u002Fblog\u002Fcomo-usar-middlewares-no-nuxtjs","Middlewares: O que são e como utilizar no Nuxt.JS","\u002Fimages\u002Fblog\u002Fnuxt\u002Fmiddlewares-no-front-end.webp",[220,221],"2025-01-14",{"id":278,"path":279,"title":280,"articleCover":281,"categoriesIds":282,"publishedAt":284},"blog\u002Fblog\u002Fcomo-validar-cartao-de-credito-com-javascript.md","\u002Fblog\u002Fcomo-validar-cartao-de-credito-com-javascript","Como validar um cartão de crédito com JavaScript (algoritmo de Luhn)","\u002Fimages\u002Fblog\u002Fjavascript\u002Fcomo-validar-cartao-de-credito-com-javascript.webp",[243,283],"tools","2026-09-17",{"id":286,"path":287,"title":288,"articleCover":289,"categoriesIds":290,"publishedAt":284},"blog\u002Fblog\u002Fcomo-validar-cpf-com-javascript.md","\u002Fblog\u002Fcomo-validar-cpf-com-javascript","Como validar um CPF com JavaScript","\u002Fimages\u002Fblog\u002Fjavascript\u002Fcomo-validar-cpf-com-javascript.webp",[243,283],{"id":292,"path":293,"title":294,"articleCover":295,"categoriesIds":296,"publishedAt":299},"blog\u002Fblog\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar.md","\u002Fblog\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar","Guia de Componentes no Figma para Iniciantes","\u002Fimages\u002Fblog\u002Ffigma\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar.png",[297,298],"figma","ux","2024-10-15",{"id":301,"path":302,"title":303,"articleCover":304,"categoriesIds":305,"publishedAt":306},"blog\u002Fblog\u002Fhub-de-ferramentas-gratuitas-para-desenvolvedores.md","\u002Fblog\u002Fhub-de-ferramentas-gratuitas-para-desenvolvedores","Criei um Hub de Ferramentas Web Gratuitas para Devs","\u002Fimages\u002Fblog\u002Fferramentas\u002Fhub-ferramentas-gratuitas-para-desenvolvedores.webp",[283],"2026-01-06",{"id":308,"path":309,"title":310,"articleCover":311,"categoriesIds":312,"publishedAt":313},"blog\u002Fblog\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las.md","\u002Fblog\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las","Diretivas no Vue 3: nativas e personalizadas","\u002Fimages\u002Fblog\u002Fvue\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las.webp",[221],"2025-03-21",{"id":315,"path":316,"title":317,"articleCover":318,"categoriesIds":319,"publishedAt":320},"blog\u002Fblog\u002Fog-tags-o-que-sao-e-como-adicionar-no-seu-site.md","\u002Fblog\u002Fog-tags-o-que-sao-e-como-adicionar-no-seu-site","OG Tags: O que São e Como Adicioná-las ao Seu Site","\u002Fimages\u002Fblog\u002Fseo\u002Fo-que-e-como-utilizar-as-og-tags.webp",[251],"2024-10-05",{"id":322,"path":323,"title":324,"articleCover":325,"categoriesIds":326,"publishedAt":327},"blog\u002Fblog\u002Fos-principais-erros-de-programadores-em-entrevistas-de-emprego.md","\u002Fblog\u002Fos-principais-erros-de-programadores-em-entrevistas-de-emprego","Os principais erros de programadores em entrevistas de emprego","\u002Fimages\u002Fblog\u002Fnao-cometa-esses-erros-na-sua-entrevista.webp",[266],"2024-09-15",{"id":329,"path":330,"title":331,"articleCover":332,"categoriesIds":333,"publishedAt":334},"blog\u002Fblog\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs.md","\u002Fblog\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs","Qual a diferença entre a Composition API e Options API no VueJS","\u002Fimages\u002Fblog\u002Fvue\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs.webp",[221],"2025-02-20",{"id":336,"path":337,"title":338,"articleCover":339,"categoriesIds":340,"publishedAt":342},"blog\u002Fblog\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens.md","\u002Fblog\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens","Scroll Infinito no React-Native: Guia Prático","\u002Fimages\u002Fblog\u002Freact-native\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens.webp",[341],"react-native","2024-12-15",{"id":344,"path":345,"title":346,"articleCover":347,"categoriesIds":348,"publishedAt":349},"blog\u002Fblog\u002Fvercel-compra-nuxt-labs.md","\u002Fblog\u002Fvercel-compra-nuxt-labs","Vercel comprou a Nuxt Labs! E agora, o que muda para o Nuxt?","\u002Fimages\u002Fblog\u002Fnuxt\u002Fvercel-compra-nuxt-labs.webp",[220],"2025-07-17",{"id":351,"path":352,"title":353,"articleCover":354,"categoriesIds":355,"publishedAt":356},"blog\u002Fblog\u002Fvue-vapor-mode-como-funciona-e-como-usar.md","\u002Fblog\u002Fvue-vapor-mode-como-funciona-e-como-usar","Vue Vapor Mode: o que é e o que muda no Vue 3.6","\u002Fimages\u002Fblog\u002Fvue\u002Fvue-vapor-mode-como-funciona-e-como-usar.webp",[221,220],"2026-10-06",{"id":358,"path":359,"title":360,"articleCover":361,"categoriesIds":362,"publishedAt":364},"blog\u002Fblog\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site.md","\u002Fblog\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site","Web Vitals e SEO: como a experiência do usuário afeta o seu site","\u002Fimages\u002Fblog\u002Fseo\u002Fweb-vitals\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site.webp",[251,363],"web-vitals","2024-10-25",1791682332656]