{"id":19482920,"url":"https://github.com/rafaelblum/demo-git-github","last_synced_at":"2026-04-28T12:35:41.853Z","repository":{"id":170202635,"uuid":"571315560","full_name":"RafaelBlum/demo-git-github","owner":"RafaelBlum","description":"Projeto com objetivo de mostrar o funcionamento do sistemas de controle de versão Git, com seus comandos `basicos` aos `avançado`, conecxão com github via chave SSH e como subir os projetos para github e suas alterações.","archived":false,"fork":false,"pushed_at":"2024-03-10T15:37:56.000Z","size":13104,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T07:28:34.170Z","etag":null,"topics":["commit","git","github","laravel","merge","ssh"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RafaelBlum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-27T20:41:55.000Z","updated_at":"2023-10-29T01:05:34.000Z","dependencies_parsed_at":"2025-01-08T07:39:10.794Z","dependency_job_id":null,"html_url":"https://github.com/RafaelBlum/demo-git-github","commit_stats":null,"previous_names":["rafaelblum/demo-git-github"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelBlum%2Fdemo-git-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelBlum%2Fdemo-git-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelBlum%2Fdemo-git-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelBlum%2Fdemo-git-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RafaelBlum","download_url":"https://codeload.github.com/RafaelBlum/demo-git-github/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240718875,"owners_count":19846481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commit","git","github","laravel","merge","ssh"],"created_at":"2024-11-10T20:12:37.693Z","updated_at":"2026-04-28T12:35:36.828Z","avatar_url":"https://github.com/RafaelBlum.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#\" title=\"git-github\"\u003e\n\t\t\u003cimg src=\"imges/git-github.png\" alt=\"logo header\" width=\"320\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eDemo trabalhando com versionamento em seus projetos\u003c/p\u003e\n\n\n# :receipt: Introdução\n\n󠁐Projeto com objetivo de mostrar de forma básica o `funcionamento do sistemas de controle de versão com Git`, \nseus comandos de inicialização de repositório local, commits, push, merge, pull e muitos outros. Vou também demonstrar a conecxão\ncom github via chave `SSH`, para poder `subir os projetos para github`.\n\n\n## :pushpin: Installation\n\n:speech_balloon: Para trabalhar com controle de versão, você vai precisar:\n\n\u003e Instalar o [`Git`](https://git-scm.com/)\n\u003e Criar uma conta no [`GitHub`](https://github.com/)\n\n\n### :zap: Configurações de variaveis globais\n\n:speech_balloon: É importante nos identificarmos para o Git, Definindo nome de usuario e endereço de e-mail para os commits.\n\n- git config --global user.name \"Fulano da Silva\"\n- git config --global user.email fulanodasilva.git@gmail.com\n- Pode verificar todos dados com comando `git config –list`.\n\n\n### :zap: Comandos basicos para versionamento de repositório local para github\n\n:speech_balloon: Iniciando repositório local\n\n- O `git init` é o primeiro comando que devemos realizar para iniciar o controle de versão, pois é com este comando,\nque iniciamos o repositório local.\n- O `git status` verifica o status atual do repositório criado para o projeto.\n- O `git log` verifica e passa uma lista de todos commits realizado no repositório e com varios dados como `hash` do commit, autor, data `branch`.\n- O `git add` coloca os arquivos não preparados, monitorados na área de preparação `staging area`. E o add pode ser arquivo por arquivo `git add name.txt` ou todos `git add .`.\n- O `git commit -m \":tada: Commit message\"` registra alterações no repositório git salvando uma mensagem de log junto com um `id hash` do commit.\n\n```\n    git init\n    git status\n    git log\n    git add .\n    git commit -m \":tada: first commit\"\n```\n\n### :zap: Conexão git e github com chave SSH\n\n:speech_balloon: Você pode usar SSH para realizar operações Git em repositórios em GitHub.com. Para obter mais informações, \nconsulte [Sobre SSH :old_key:](https://docs.github.com/pt/authentication/connecting-to-github-with-ssh) ou [add ssh key](https://docs.github.com/pt/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?platform=windows). \nSe você tiver uma chave :key: SSH existente, poderá usá-la para autenticar operações do Git por SSH.\n\n\u003e Com o Git Bash aberto execute:\n\n```\n    ssh-keygen -t ed25519 -C \"your_email@example.com\"\n```\n\n:speech_balloon: Quando você for solicitado a `Inserir um arquivo no qual salvar a chave`, pressione `Enter` para aceitar o local padrão \ndo arquivo.Observe que, se você criou chaves SSH anteriormente, o ssh-keygen pode solicitar que você reescreva outra chave; \nnesse caso, recomendo a criação de uma chave SSH com nome personalizado. Para fazer isso, digite o local padrão \ndo arquivo e substitua id_ssh_keyname pelo nome de sua chave personalizada.\n\nPor fim, `precisa copiar a chave` para depois ir em sua conta no github para `criar a nova conexão SSH`. Obs: \n`O comando abaixo você precisa estar no diretório certo para fazer o copy`.\n\n```\n    clip \u003c ~/.ssh/id_ed25519.pub\n```\n\n## :pushpin: Padrões de commits\n\n:speech_balloon: De acordo com a documentação do **[Conventional Commits](https://www.conventionalcommits.org/pt-br)**, commits semânticos \nsão uma convenção simples para ser utilizada nas mensagens de commit. Essa convenção define um conjunto de regras para \ncriar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas. Esses commits auxiliarão \nvocê e sua equipe a entenderem de forma facilitada quais alterações foram realizadas no trecho de código que foi commitado.\n\n### :zap: Tipo e descrição\n\n:speech_balloon: O commit semântico possui os elementos estruturais abaixo (tipos), que informam a intenção do seu commit ao utilizador(a) de seu código.\n\n- `feat`- Commits do tipo feat indicam que seu trecho de código está incluindo um **novo recurso** (se relaciona com o MINOR do versionamento semântico).\n\n- `fix` - Commits do tipo fix indicam que seu trecho de código commitado está **solucionando um problema** (bug fix), (se relaciona com o PATCH do versionamento semântico).\n\n- `docs` - Commits do tipo docs indicam que houveram **mudanças na documentação**, como por exemplo no Readme do seu repositório. (Não inclui alterações em código).\n\n- `test` - Commits do tipo test são utilizados quando são realizadas **alterações em testes**, seja criando, alterando ou excluindo testes unitários. (Não inclui alterações em código)\n\n- `build` - Commits do tipo build são utilizados quando são realizadas modificações em **arquivos de build e dependências**.\n\n- `perf` - Commits do tipo perf servem para identificar quaisquer alterações de código que estejam relacionadas a **performance**.\n\n- `style` - Commits do tipo style indicam que houveram alterações referentes a **formatações de código**, semicolons, trailing spaces, lint... (Não inclui alterações em código).\n\n- `refactor` - Commits do tipo refactor referem-se a mudanças devido a **refatorações que não alterem sua funcionalidade**, como por exemplo, uma alteração no formato como é processada determinada parte da tela, mas que manteve a mesma funcionalidade, ou melhorias de performance devido a um code review.\n\n- `chore` - Commits do tipo chore indicam **atualizações de tarefas** de build, configurações de administrador, pacotes... como por exemplo adicionar um pacote no gitignore. (Não inclui alterações em código)\n\n- `ci` - Commits do tipo ci indicam mudanças relacionadas a **integração contínua** (_continuous integration_).\n\n\n### :zap: Padrões de emojis\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTipo do commit\u003c/th\u003e\n      \u003cth\u003eEmoji\u003c/th\u003e\n      \u003cth\u003ePalavra-chave\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAcessibilidade\u003c/td\u003e\n      \u003ctd\u003e♿ \u003ccode\u003e:wheelchair:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAdicionando um teste\u003c/td\u003e\n      \u003ctd\u003e✅ \u003ccode\u003e:white_check_mark:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003etest\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAdicionando uma dependência\u003c/td\u003e\n      \u003ctd\u003e➕ \u003ccode\u003e:heavy_plus_sign:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003ebuild\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAlterações de revisão de código\u003c/td\u003e\n      \u003ctd\u003e👌 \u003ccode\u003e:ok_hand:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003estyle\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAnimações e transições\u003c/td\u003e\n      \u003ctd\u003e💫 \u003ccode\u003e:dizzy:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eBugfix\u003c/td\u003e\n      \u003ctd\u003e🐛 \u003ccode\u003e:bug:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003efix\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eComentários\u003c/td\u003e\n      \u003ctd\u003e💡 \u003ccode\u003e:bulb:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003edocs\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eCommit inicial\u003c/td\u003e\n      \u003ctd\u003e🎉 \u003ccode\u003e:tada:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003einit\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eConfiguração\u003c/td\u003e\n      \u003ctd\u003e🔧 \u003ccode\u003e:wrench:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003echore\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDeploy\u003c/td\u003e\n      \u003ctd\u003e🚀 \u003ccode\u003e:rocket:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDocumentação\u003c/td\u003e\n      \u003ctd\u003e📚 \u003ccode\u003e:books:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003edocs\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eEm progresso\u003c/td\u003e\n      \u003ctd\u003e🚧 \u003ccode\u003e:construction:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eEstilização de interface\u003c/td\u003e\n      \u003ctd\u003e💄 \u003ccode\u003e:lipstick:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003efeat\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eInfraestrutura\u003c/td\u003e\n      \u003ctd\u003e🧱 \u003ccode\u003e:bricks:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003eci\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eLista de ideias (tasks)\u003c/td\u003e\n      \u003ctd\u003e🔜 \u003ccode\u003e :soon: \u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eMover/Renomear\u003c/td\u003e\n      \u003ctd\u003e🚚 \u003ccode\u003e:truck:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003echore\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eNovo recurso\u003c/td\u003e\n      \u003ctd\u003e✨ \u003ccode\u003e:sparkles:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003efeat\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003ePackage.json em JS\u003c/td\u003e\n      \u003ctd\u003e📦 \u003ccode\u003e:package:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003ebuild\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003ePerformance\u003c/td\u003e\n      \u003ctd\u003e⚡ \u003ccode\u003e:zap:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003eperf\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eRefatoração\u003c/td\u003e\n        \u003ctd\u003e♻️ \u003ccode\u003e:recycle:\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003erefactor\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eRemovendo um arquivo\u003c/td\u003e\n      \u003ctd\u003e🔥 \u003ccode\u003e:fire:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eRemovendo uma dependência\u003c/td\u003e\n      \u003ctd\u003e➖ \u003ccode\u003e:heavy_minus_sign:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003ebuild\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eResponsividade\u003c/td\u003e\n      \u003ctd\u003e📱 \u003ccode\u003e:iphone:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eRevertendo mudanças\u003c/td\u003e\n      \u003ctd\u003e💥 \u003ccode\u003e:boom:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003efix\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eSegurança\u003c/td\u003e\n      \u003ctd\u003e🔒️ \u003ccode\u003e:lock:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eSEO\u003c/td\u003e\n      \u003ctd\u003e🔍️ \u003ccode\u003e:mag:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTag de versão\u003c/td\u003e\n      \u003ctd\u003e🔖 \u003ccode\u003e:bookmark:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTeste de aprovação\u003c/td\u003e\n      \u003ctd\u003e✔️ \u003ccode\u003e:heavy_check_mark:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003etest\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTestes\u003c/td\u003e\n      \u003ctd\u003e🧪 \u003ccode\u003e:test_tube:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003etest\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTexto\u003c/td\u003e\n      \u003ctd\u003e📝 \u003ccode\u003e:pencil:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTipagem\u003c/td\u003e\n      \u003ctd\u003e🏷️ \u003ccode\u003e:label:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eTratamento de erros\u003c/td\u003e\n      \u003ctd\u003e🥅 \u003ccode\u003e:goal_net:\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### :test_tube: Exemplos\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eComando Git\u003c/th\u003e\n      \u003cth\u003eResultado no GitHub\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":tada: Commit inicial\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e🎉 Commit inicial\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":books: docs: Atualizaçao do README\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e📚 docs: Atualizaçao do README\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":bug: fix: Loop infinito na linha 50\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e🐛 fix: Loop infinito na linha 50\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":sparkles: feat: Pagina de login\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e✨ feat: Pagina de login\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":bricks: ci: Modificaçao no Dockerfile\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e🧱 ci: Modificaçao no Dockerfile\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":recycle: refactor: Passando para arrow functions\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e♻️ refactor: Passando para arrow functions\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":zap: perf: Melhoria no tempo de resposta\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e⚡ perf: Melhoria no tempo de resposta\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":boom: fix: Revertendo mudanças ineficientes\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e💥 fix: Revertendo mudanças ineficientes\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":lipstick: feat: Estilizaçao CSS do formulario\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e💄 feat: Estilizaçao CSS do formulario\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":test_tube: test: Criando novo teste\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e🧪 test: Criando novo teste\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -m \":bulb: docs: Comentários sobre a função LoremIpsum( )\"\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e💡 docs: Comentários sobre a função LoremIpsum( )\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n## :receipt: Iniciando repositório **local para subir no servidor github**\n\n### :zap: Como `clonar` um repositório do servidor do `github`:question: \n:speech_balloon: Adicionamos o comando `git clone ` + `ssh code` do repositório github. Conforme abaixo, vamos baixar o projeto em um diretório.\n\n```\n    git clone git@github.com:RafaelBlum/demo-git-github.git\n```\n\n:speech_balloon: Podemos também definir uma pasta ao clonar um repositório.\n\n```\n    git clone git@github.com:RafaelBlum/demo-git-github.git nomeDiretório\n```\n\n\n:speech_balloon: Depois de cria a chave, basta criar um repositório no github e seguir os comandos abaixo.\n\n```\n    git remote add origin git@github.com:RafaelBlum/demo-git-github.git\n    git branch -M main\n    git push -u origin main\n```\n\n:speech_balloon: Como enviar as alterações realizadas no seu projeto.\n\n```\n    git status\n    git add .\n    git commit -m \"Alterações na feature x\"\n    git push\n```\n\n#### Mensagens de pré e pós commits\u003c/sub\u003e\n\n- :heavy_check_mark: Untracked files `Arquivos não rastreados no controle de vesão`\n- :heavy_check_mark: Changes to be committed `Arquivos rastreados no controle de versão`\n- :heavy_check_mark: Changes not staged for committed `Arquivos rastreados, mas com alterações`\n\n#### Histórico de commits e alterações\n```\n    git log\n    git reflog\n    git log --stat\n    git log --oneline\n```\n#### Alterando a mensagem do commit\n- Definindo `-m` você pode editar a mensagem sem abrir o editor\n\n```\ngit commit --amend -m \"mensagem de correção aqui\"\n```\n\n\n#### Mostra o conteúdo que foi alterado, mas antes do commit\n```\ngif diff\n```\n\n#### Mostra arquivo que foi alterado, mas antes do commit\n```\ngif diff --name-only\n```\n\n#### Remove alterações realizadas em algum arquivo especifico\n```\ngit checkout HEAD -- style.css\n```\n\n#### Como voltar para alguma alteração commitada `voltar na sua linha do tempo`\n\n```\ngit reflog\ngit reset --hard id_commit\n```\n\n#### Revertendo um commit feito\n- É importante entender que git revert desfaz um único commit — ele \nnão \"reverte\" ao estado anterior de um projeto removendo todos os commits subsequentes. \n- No Git, isso é chamado de redefinição, não de reversão.\n```\ngit revert id_commit\n```\n\n## :zap: Branchs\n\n#### Trabalhando nas linhas do tempo.\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#\" title=\"git-github\"\u003e\n\t\t\u003cimg src=\"imges/machine-git.jpg\" alt=\"time machine\" width=\"350\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n:speech_balloon: Como podemos ver, trabalhar com git é como se estivessemos em uma `máquina do tempo`, onde `podemos voltar` na nossa linha do \ntempo, o que chamamos de `commits`, voltando no inicio do projeto ou em qulquer momento.\n\nAgora vamos utilizar outro poder do tempo, o poder de criar uma `linha do tempo em paralelo`, o que chamamos de `branchs`.\nEstas linhas, branchs, usamos quando vamos desenvolver uma feature nova ou quando vamos `trabalhar em equipe`, pois assim\ntodos podemos trabalhar em uma parte do projeto sem que haja problemas em nosso projeto que está funcionando corretamente.\n\n\u003e Desta forma, podemos ter um desenvolvedor trabalhando na branch 2, na página de produtos e outro desenvolvedor trabalhando na branch 1, com a Home.\n\n#### Verificar qual branch esta ativo e quais existem\n\n```\ngit branch\n```\n\n#### Como criar um branch `linha do tempo`\n\n```\ngit branch new_feature\n```\n\n#### Como passar para uma branch `linha do tempo`\n\n```\ngit checkout new_feature\ngit branch\n```\n\n##### ou podemos criar a branch e já passr para ela.\n\n```\ngit checkout -b new_feature\n```\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#\" title=\"git-github\"\u003e\n\t\t\u003cimg src=\"imges/time-line.png\" alt=\"time machine\" width=\"450\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n:speech_balloon: Agora temos duas linhas do tempo `main` e `new_feature`. Podemos subir mais uma Branch para github (remoto).\n\n```\nGit push origin branch-name\n```\n\n#### Remover uma branch remoto\n```\nGit push origin :branch-name\n```\n\n\n#### Remover branch local\n```\nGit branch –D branch-name\n```\n\n#### Como fazer Git Merge e pull\n\n:speech_balloon: Antes de fazer o `merge` é importante fazer um `pull` no projeto `remoto Github`, puxando e atulizando para o projeto local, pois\npode acontecer de outro desenvolvedor tenha modificado algo, então na branch `main`.\n\n```\ngit pull origin branch-name\ngit push --set-upstream origin branch-name\n```\n\nAgora sim, podemos fazer o merge\n\n```\ngit branch\ngit merge branch_name\n```\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#\" title=\"merge\"\u003e\n\t\t\u003cimg src=\"imges/merger.png\" alt=\"merge\" width=\"650\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n`Ex:` Uma empresa pede para o desenvolvedor `criar um sistema de login`, mas ele não pode afetar o sistema principal ou o desenvolvimento\ndos outros desenvolvedores. E ao finalizar, ele deve passar seu código para um `pull request`.\n\nSe você quiser `criar um branch e fazer o checkout` ao mesmo tempo, use o comando git checkout. O parâmetro `-b` especifica o nome do branch.\n\nCriou um nova branch `copiando a main`\n```\ngit checkout -b sistema-de-login main\n```\n\nAgora alteramos para a branch que queremos atualizar `merge`.\n\n```\ngit checkout main\ngit pull\ngit merge sistema-de-login\ngit push\n```\n\nDepois de pronta a nova feature e enviada a branch nova para github, você no github, vai criar uma pull request que será aprovada ou não pela equipe.\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#\" title=\"merge\"\u003e\n\t\t\u003cimg src=\"imges/pullrequest.png\" alt=\"merge\" width=\"550\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n## :zap: Pull - `Trabalhando na mesma branch`\n\n:speech_balloon: Algumas vezes podemos trabalhar na mesma branch e computadores dferentes ou com outros usuários e antes de iniciair, precisamos\natualizar o código para o atual no github, conforme os commits forem sendo realizados.\n\nO comando abaixo do `git atualizar os arquivos do repositório remoto`.\nExecute:\n```\n    git pull\n```\n\nCaso o git pull gere uma :x:mensagem:x:\n\n\u003eerror:x:: Your local changes to the following files would be overwritten by merge\n\u003e...\n\u003ePlease commit your changes or stash them before you merge.\n\u003eAborting\n\nA :heavy_check_mark: `solução` que pode ser feita: Utilizar um `git stash` para gravar o estado atual do seu repositório local, revertendo os \narquivos para o estado atual do repositório remoto.\n\n```\n git stash push --include-untracked\n```\nE agora sim o `pull irá funcionar`:\n```\n git pull\n```\n\n\u003cbr\u003e\n\n#### 💻 Comandos indice gerais\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eComando Git\u003c/th\u003e\n      \u003cth\u003eDescrição\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit init\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: cria novo repositório local\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit clone http://repositorio-exemple.git \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: copia repositório local \u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit status \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: Mostra arquivos alterados no diretório de trabalho \u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit diff \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  mudanças em arquivos rastreados\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit add . \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  adiciona todas mudanças para o proximo commit\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit add . -p \u003c file \u003e\u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: adiciona algumas mudanças destes arquivos para o commit \u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit -a \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: Confirma todas alterações locais em arquivos rastreados \u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  comfirma alterações\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit commit --amend \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  muda o último commit\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit log \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  Mostra todos commit iniciando pelo mais novo\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit log -p \u003c file \u003e \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label:  mostra todas mudanças ao longo do tempo em um arquivo especific\u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ccode\u003egit blade \u003c file \u003e \u003c/code\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e:label: Mostra que alterou, quem e quando \u003c/td\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit branch -av\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: Lista todas branchs existens\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit checkout \u003c branch \u003e\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: Muda para a branch selecionada\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit branch \u003c name-branch \u003e\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: cria uma branch\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit branch -D name-branch\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: deleta branch\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit tag name\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: cria uma tag\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit tag\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label:  mostra as tags, que representam algumas mudanças significativas no seu código\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\n            \u003ccode\u003egit push --tags\u003c/code\u003e\n          \u003c/td\u003e\n          \u003ctd\u003e:label: publica todas tags criadas.\u003c/td\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n### Contatos\n\nContatos 👇🏼 [rafaelblum_digital@hotmail.com]\n\n[![Youtube Badge](https://img.shields.io/badge/-Youtube-FF0000?style=flat-square\u0026labelColor=FF0000\u0026logo=youtube\u0026logoColor=white\u0026link=https://www.youtube.com/channel/UCMvtn8HZ12Ud-sdkY5KzTog)](https://www.youtube.com/channel/UCMvtn8HZ12Ud-sdkY5KzTog)\n[![Instagram Badge](https://img.shields.io/badge/-rafablum_-violet?style=flat-square\u0026logo=Instagram\u0026logoColor=white\u0026link=https://www.instagram.com/rafablum_/)](https://www.instagram.com/rafablum_/)\n[![Twitter: universoCode](https://img.shields.io/twitter/follow/universoCode?style=social)](https://twitter.com/universoCode)\n[![Linkedin: RafaelBlum](https://img.shields.io/badge/-RafaelBlum-blue?style=flat-square\u0026logo=Linkedin\u0026logoColor=white\u0026link=https://www.linkedin.com/in/rafael-blum-237133114/)](https://www.linkedin.com/in/rafael-blum-237133114/)\n[![GitHub RafaelBlum](https://img.shields.io/github/followers/RafaelBlum?label=follow\u0026style=social)](https://github.com/RafaelBlum)\n\n\u003cbr/\u003e\n\n\u003cimg src=\"https://media.giphy.com/media/LnQjpWaON8nhr21vNW/giphy.gif\" width=\"60\"\u003e \u003cem\u003e\u003cb\u003eAdoro me conectar com pessoas diferentes,\u003c/b\u003e então se você quiser dizer \u003cb\u003eoi, ficarei feliz em conhecê-lo mais!\u003c/b\u003e :)\u003c/em\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelblum%2Fdemo-git-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafaelblum%2Fdemo-git-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelblum%2Fdemo-git-github/lists"}