{"id":197,"date":"2025-08-14T16:01:42","date_gmt":"2025-08-14T16:01:42","guid":{"rendered":"https:\/\/codefornoobs.pt\/?p=197"},"modified":"2025-08-14T16:01:42","modified_gmt":"2025-08-14T16:01:42","slug":"controla-o-teu-codigo-desde-o-primeiro-dia","status":"publish","type":"post","link":"https:\/\/codefornoobs.pt\/?p=197","title":{"rendered":"Controla o teu codigo desde o primeiro dia"},"content":{"rendered":"\n<p>Uma ferramenta fundamenta no arsenal de um programador \u00e9 conseguir guardar o seu c\u00f3digo de forma segura, simples e de partilhar com outras pessoas ou at\u00e9 mesmo entre v\u00e1rios computadores. Poderiamos &#8220;inventar&#8221; v\u00e1rias formas como por exemplo ter v\u00e1rias pastas do projeto para cada vers\u00e3o em que a final seria algo do g\u00e9nero: &#8220;ProjectWannaBe_43_Final_MesmoFinal_aserio_ultimavez&#8221;. Claramente, isto n\u00e3o \u00e9 nada pr\u00e1tico e se j\u00e1 est\u00e1s a programar h\u00e1 algum tempo, certamente, j\u00e1 ouviste falar em controlo de vers\u00f5es. <\/p>\n\n\n\n<p>O mais comum, e usado pela maioria de todos n\u00f3s, \u00e9 o GIT. O git \u00e9 uma ferramente de controlo de vers\u00f5es que permite n\u00e3o s\u00f3 guardar o c\u00f3digo, mas manter o registo das v\u00e1rias vers\u00f5es que temos assim como fazer rollback para qualquer uma delas a qualquer momento. Podemos ainda partilhar de forma simples o c\u00f3digo entre ambientes de programa\u00e7\u00e3o ou colegas. Esta ferramenta permite, ainda, v\u00e1rias pessoas trabalharem ao mesmo tempo no mesmo projeto. A maioria das empresas usa uma vers\u00e3o de GIT. Al\u00e9m de o git vamos precisar de uma plataforma onde alojar os nossos reposit\u00f3rios. Reposit\u00f3rios \u00e9 o nome que damos a cada projecto que criamos no GIT. Existem v\u00e1rias plataformas. Temos por exemplo o GitHub, Bitbucket ou Gitlab. Isto s\u00e3o algumas que j\u00e1 usei e todas elas tem vers\u00f5es gratuitas onde podemos criar e alojar os nossos reposit\u00f3rios. Vou-me apenas focar no github, porque \u00e9 o mais usado para projectos open source.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" src=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-1024x558.png\" alt=\"\" class=\"wp-image-200\" srcset=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-1024x558.png 1024w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-300x164.png 300w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-768x419.png 768w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-1536x838.png 1536w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-2048x1117.png 2048w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-06-at-23.00.14-850x464.png 850w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>O primeiro passo \u00e9 aceder ao <a href=\"http:\/\/github.com\" title=\"\">Github<\/a> e criar uma nova conta. Para criar uma nova conta apenas \u00e9 necess\u00e1rio um email, password segura e um username. Depois de termos uma conta registada j\u00e1 podemos criar os nossos reposit\u00f3rios remotos. Para criar um reposit\u00f3rio remoto no Github, basta caregar no &#8220;+&#8221; que vai estar perto do canto superior direito e escolher reposit\u00f3rio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"394\" height=\"458\" src=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com_.png\" alt=\"\" class=\"wp-image-201\" srcset=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com_.png 394w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com_-258x300.png 258w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com_-300x349.png 300w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><\/figure>\n\n\n\n<p>Depois basta dar o nome do projecto e adicionar uma pequena descri\u00e7\u00e3o a dizer o que \u00e9 o projecto. N\u00e3o \u00e9 obrigat\u00f3rio, mas podemos j\u00e1 adicionar um Read.me e no ficheiro .gitignore vamos escolher a op\u00e7\u00e3o &#8220;Dotnet&#8221;. Isto ir\u00e1 facilitar no futuro. Para j\u00e1 basta saber que este ficheiro gitignore, como o nome diz, serve para ignorar ficheiros que n\u00e3o queremos submeter para o reposit\u00f3rio. Um bom exemplo s\u00e3o as pastas BIN ou OBJ que s\u00e3o sempre geradas quando aplica\u00e7\u00e3o \u00e9 compilada.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"941\" src=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1-1024x941.png\" alt=\"\" class=\"wp-image-202\" srcset=\"https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1-1024x941.png 1024w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1-300x276.png 300w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1-768x706.png 768w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1-850x781.png 850w, https:\/\/codefornoobs.pt\/wp-content\/uploads\/2025\/08\/brave_screenshot_github.com-1.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Agora, para usarmos o git localmente precisamos de instalar o git no nosso computador. Aqui temos duas op\u00e7\u00f5es. Podemos apenas instalar o git e utilizar o git atrav\u00e9s da linha de comandos. Ou podemos usar software para nos ajudar com esta parte do git. Aqui tamb\u00e9m temos muitas o\u00e7\u00f5es. Eu gosto de usar e recomendo o <a href=\"https:\/\/www.sublimemerge.com\/\" title=\"\">sublime merge<\/a> que \u00e9 simples e f\u00e1cil de usar, mas para este tutorial vou-me ficar pela linha de comandos.<\/p>\n\n\n\n<p>Para instalar o git basta ir at\u00e9 ao site do <a href=\"https:\/\/git-scm.com\/downloads\" title=\"\">git<\/a> e seguir os passos. Depois de instalado estamos prontos para come\u00e7ar a usar o git. Abrindo a linha de comandos podes executar o comando abaixo para garantir que ficou tudo instalado corretamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git --version<\/code><\/pre>\n\n\n\n<p>O comando deve de devolver a vers\u00e3o do git instalada. Posto isto estamos prontos criar o nosso primeiro reposit\u00f3rio. Vamos navegar, na linha de comandos at\u00e9 \u00e0 localiza\u00e7\u00e3o raiz do projecto e vamos correr este comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git init<\/code><\/pre>\n\n\n\n<p>Isto vai initializar o reposit\u00f3rio e o pr\u00f3ximo passo \u00e9 adidiconar o reposit\u00f3rio remoto que cri\u00e1mos em cima<\/p>\n\n\n\n<p>git remote add Origin [URL_Repositorio_Github]<\/p>\n\n\n\n<p>Podemos subtituir o &#8220;Origin&#8221; por um nome diferente que queiramos usar para identificar o reposit\u00f3rio remoto. Por norma, utilizo Origin e a l\u00f3gica \u00e9 que o reposit\u00f3rio de Origem. Onde vamos sempre sincronizar e buscar a informa\u00e7\u00e3o. Agora o pr\u00f3ximo comando vai dar-nos o estado atual do nosso projecto. Vai mostrar as coisas a verde que j\u00e1 est\u00e3o staged, a vermelho as altera\u00e7\u00f5es que faltam fazer stage. ainda mostra um hist\u00f3rico de todas a altera\u00e7\u00f5es, mas como ainda n\u00e3o fizemos nada, n\u00e3o deve de mostrar nada de hist\u00f3rio.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git status<\/code><\/pre>\n\n\n\n\n\n<p>Se no vosso caso acontecer como no meu em que o branch indicado \u00e9 o Master, devem de correr o seguinte comando para mudar para o Main. Isto porque por defeito o Github usa o Main como branch principal em vez de master e ir\u00e1 facilitar muito as coisas mais \u00e0 frente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git checkout -b origin\/main<\/code><\/pre>\n\n\n\n<p>Depois basta correr os 3 seguintes comando para colocar tudo no reposit\u00f3rio remoto. O primeiro estamos adicionar todos os ficheiros pendentes. Como \u00e9 a primeira vez adicionamos tudo. Se quisessemos s\u00f3 fazer commit de um ficheiro poderiamos indicar o nome do ficheiro. O segundo \u00e9 para indicar a mensagem no commit. Normalmente, vamos colocar uma mensagem que nos ajude a perceber o que foi feito naquele commit. Por fim vamos submeter as altera\u00e7\u00f5es para o reposit\u00f3rio remoto. Como \u00e9 a primeira vez que fazemos push temos de dizer para onde vamos fazer push e indicar o branch que vamos fazer push. A parte &#8220;-set-upstream origin\/main&#8221; serve para isso mesmo e basta fazer na primeira vez. As restantes vezes basta usar o comando git push.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git add *\ngit commit -m \"Fist Commit\"\ngit push -set-upstream origin origin\/main<\/code><\/pre>\n\n\n\n<p>Agora podemos fizer que o nosso c\u00f3digo est\u00e1 na cloud e que temos um backup do nosso projeto dispon\u00edvel para partilhar nos equipamentos e com as pessoas que quisermos ou preferirmos. Claro que o git \u00e9 muito mais do que isto e ainda temos muito para aprofundar e descobrir, mas fica aqui os comandos mais b\u00e1sicos e fundamentais para usar no git.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma ferramenta fundamenta no arsenal de um programador \u00e9 conseguir guardar o seu c\u00f3digo de forma segura, simples e de partilhar com outras pessoas ou at\u00e9 mesmo entre v\u00e1rios computadores. Poderiamos &#8220;inventar&#8221; v\u00e1rias formas como por exemplo ter v\u00e1rias pastas do projeto para cada vers\u00e3o em que a final seria algo do g\u00e9nero: &#8220;ProjectWannaBe_43_Final_MesmoFinal_aserio_ultimavez&#8221;. Claramente,&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=197"}],"version-history":[{"count":5,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=\/wp\/v2\/posts\/197\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codefornoobs.pt\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}