Git & GitHub | Resumo de como configurar e Upar no GitHub (Para Usuários Intermediários)

Meu GitHub: Link GitHub Gist: Link

Resumo das explicações

  • Aviso
  • Comandos iniciais (Feito uma única vez)
>   git init
>   git remote add origin https://github.com/USER/REPO.git

Ou:

>   git clone https://github.com/USER/REPO.git
  • Mandar pro GitHub
>   git add .
>   git commit -m "Alterações no Menu"
>   git push origin main

Instruções

Troque somente os campos "[string]" pela informação necessária. Ex: "[nome]" => "Gabriel"

Tutorial - Instalando o "Git"

Aviso Importante

Sempre antes/durante/depois do "GIT PUSH ORIGIN MAIN REZE PARA DEUS!!!!!!!!

  • Agora o GitHub tem por padrão, o nome da branch como "main", ao invés de "master", como era usado antigamente, com isso é recomendado na instalação, optar por essa opção abaixo, para facilitar a integração com o GitHub.

image

Caso já tenha instalado o Git e inicializado o repositório, você pode trocar de master para main com esse comando:

>   git branch -m master main

Configurando autenticação do "Git"

Primeiro vamos configurar o nosso Git que está localmente. Com nosso nome e e-mail (É recomendado o mesmo do GitHub)

  • Configure o nome que você quer para todos os repositórios locais
>   git config --global user.name "[nome]"
  • Configura o e-mail que você quer ligado aos seus commit
>   git config --global user.email "[endereco-de-email]"

Escolha a maneira que você quer prosseguir

Repositório "Novo"

Comandos quando devem ser feitos apenas na criação de um novo repositório

Escolha a pasta do projeto e crie o repositório Git com o comando:

  • Cria o repositório local
>   git init
  • Linka o repositório remoto, ou seja, linka com o repositório GitHub O link pode ser encontra aqui, como mostrado na image:

image Ex: https://github.com/PuniGC/ProjetoEscolaAPI_React-dotnet

> git remote add origin https://github.com/USER/REPO.git
  • Agora prossiga com as etapas do repositório existente

Repositório "Existente" no Github

  • Clonar repositório do GitHub
> git clone https://github.com/PuniGC/ProjetoEscolaAPI_React-dotnet

Repositório "Existente" e Comandos para mandar pro GitHub

Vamos adicionar os arquivos que podem ser comitados

  • Adicionar todos os arquivos
> git add .

Ou

  • Adicionar um único arquivo
> git add index.html

Agora após realizar alguma alteração em nossos arquivos, devemos comitados (Colocar na fila) para serem enviados ao repositório do GitHub

  • Confirmar as alterações:
> git commit -m "[mensagem-que-aparecera-no-github]"

Recomendam-se nomes não genéricos, para indicar alterações o motivo da alteração. Ex:

> git commit -m "[+] Resolvido Bug no componente Login" 

Por fim, devemos enviar as alterações para o GitHub

  • Enviando alterações
> git push origin main 

Prontinho, sucessooooo.

Obs 1: Sem Observações Obs 2: A Obs 3 é falsa Obs 3: A Obs 2 está correta

EM CASO DE ERRO NO Git Push

Pode ser que, você tenha um erro ao tentar dar git push, o erro chama-se conflito de merge, e isso acontece quando dois desenvolvedores ou você mesmo, alteram o mesmo trecho de código (em diferentes computadores) e a única maneira de resolver este conflito é através de uma intervenção manual, temos dois computadores que possuem diferentes alterações, é muito comum até em empresas, mas não se preocupe.

image

Para resolver isso, siga os seguintes passos: CHAMAR O SANTANA, brincadeira kkkkk

Escolha um dos video que explica como resolver esses conflitos, e siga o tutorial, pois é algo um pouco difícil de explicar por texto

E provavelmente, após resolver o conflito de merge, o video indicara para você realizar esses comandos para por fim mandar o merge/alterações para o GitHub.

git add .
git commit -m "[+] Resolvendo merge conflit (Nova Feature no SelectMenu)"
git push origin main 

Ebaaaaaaa... acabou <3

EM CASO DE OUTROS ERROS

  • Não abra a mão de tudo, PESQUISE!!!, isso, procure o erro na internet, stackoverflow, discord e professores/colegas, não tenha medo ou vergonha disso, é super normal darem esses erros, acredite, até com programadores experientes e comigo kkk, e até mesmo eles dão um Google nessas horas, assim como tudo, pratique, pois a melhor forma de resolver um erro, é evitando ele. E sim, eu sei que isso é algo que abrimos muitas vezes mão de fazer, mas acredite essa é a única maneira de resolver o seu problema, não fique apenas correndo atrás dos outros, foque em apreender e praticar, para que na próxima vez, quem se assuste com o erro, seja ele mesmo. Além disso, você pode me procurar também, seja no Discord ou por E-mail, fico feliz em ajuda, quem saiba eu não ajude a resolver, te ensino e ainda apreendo junto sobre, kkkkkk, a final, todos nos  somos estudantes nessa jornada, só cuidado com a prática do POSDQ - Programação Orientada a Seja o que Deus Quiser.

Outra dica importante, tente procurar erros ou assuntos em inglês, há muito mais conteúdo em inglês devido à linguagem ser umas das principais línguas do mundo, ou seja, tem muito mais soluções escritas e documentadas nessa língua, o que ajuda bastante.

Git Ignore - Ignorar arquivos (Não mandar esses arquivos do Git local para a GitHub)

Basta criar um arquivo chamado .gitignore e nele colocar os nomes do arquivos

  • Mais sobre:

Sobre: ​​https://help.github.com/articles/ignoring-files Modelos úteis: https://github.com/github/gitignore

Por fim ... Referencias

Comandos adicionais (+Mais técnicos)

Mostrar conteúdo da pasta: ls -la

Comandos de Ajuda

Veja onde o Git está localizado: que git

Obtenha a versão do Git: git --version

Crie um alias (atalho) para git status: git config --global alias.st status

Ajuda: git help

Comandos adicionais

Verifica qual é o remote atual git remote -v

Adicione e confirme em uma etapa: git commit -am "Mensagem"

Remova os arquivos do Git: git rm index.html

Atualize todas as alterações: git add -u

Remova o arquivo, mas não rastreie mais: git rm --cached index.html

Mover ou renomear arquivos: git mv index.html dir/index_new.html

Desfazer modificações (restaurar arquivos da última versão confirmada): git checkout -- index.html

Restaurar arquivo de um commit personalizado (no branch atual): git checkout 6eb715d -- index.html

Redefinir

Volte para o commit: git revert 073791e7dd71b90daa853b2c5acc2c925f02dbc6

Soft reset (mova apenas HEAD; nem o staging, nem o diretório de trabalho são alterados): git reset --soft 073791e7dd71b90daa853b2c5acc2c925f02dbc6

Desfazer o último commit: git reset --soft HEAD~

Redefinição mista (mova HEAD e altere o staging para corresponder ao repositório; não afeta o diretório de trabalho): git reset --mixed 073791e7dd71b90daa853b2c5acc2c925f02dbc6

Hard reset (mova HEAD e altere o diretório de teste e o diretório de trabalho para corresponder ao repositório): git reset --hard 073791e7dd71b90daa853b2c5acc2c925f02dbc6

Hard reset de um único arquivo (@ é a abreviação de HEAD): git checkout @ -- index.html

Atualizar e excluir

Teste-exclua arquivos não rastreados: git clean -n

Excluir arquivos não rastreados (sem preparação): git clean -f

Desfaça (desfaça adições): git reset HEAD index.html

Atualize o commit mais recente (atualize também a mensagem do commit): git commit --amend -m "Nova mensagem"

Ramo

Mostrar ramos: git branch

Criar filial: git branch branchname

Mudar para filial: git checkout branchname

Crie e mude para um novo branch: git checkout -b nome do ramo

renomear ramo: git branch -m branchname new_branchname ou: git branch --move branchname new_branchname

Mostrar todas as ramificações completamente mescladas com a ramificação atual: git branch --merged

Excluir branch mesclado (possível apenas se não for HEAD): git branch -d branchname ou: git branch --delete branchname

Excluir branch não mesclado: git branch -D branch_to_delete

Mesclar

Mesclagem verdadeira (avanço rápido): git merge branchname

Mesclar para mestre (somente se avançar): git merge --ff-only branchname

Mesclar para master (forçar um novo commit): git merge --no-ff branchname

Parar a mesclagem (em caso de conflitos): git merge --abort

Parar a mesclagem (em caso de conflitos): git reset --merge //antes da v1.7.4

Desfaça a mesclagem local que ainda não foi enviada: git reset --hard origin/master

Mescle apenas um commit específico: git cherry-pick 073791e7

Rebase: git checkout branchname » git rebase master ou: git merge master branchname (O rebase move todos os commits em master para a ponta de branchname.)

Cancelar rebase: git rebase --abort

Esmague vários commits em um: git rebase -i HEAD~3 (fonte)

Squash mescla um branch de recurso (como um commit): git merge --squash branchname (commit depois)

Estoque

Colocar em estoque: git stash save "Mensagem"

Mostrar estoque: git stash list

Mostrar estatísticas de estoque: git stash show stash@{0}

Mostrar alterações de stash: git stash show -p stash@{0}

Use o item de stash personalizado e solte-o: git stash pop stash@{0}

Use um item de stash personalizado e não o deixe cair: git stash apply stash@{0}

Use o item e o índice do stash personalizados: git stash apply --index

Criar ramificação do stash: git stash branch new_branch

Excluir item de stash personalizado: git stash drop stash@{0}

Excluir stash completo: git stash clear

##Gitignore & Gitkeep Adicione ou edite gitignore: nano.gitignore

Rastrear diretório vazio: touch dir/.gitkeep

Registro

Mostrar compromissos: gitlog

Mostrar resumo de uma linha de commits: git log --oneline

Mostrar resumo de uma linha de commits com SHA-1 completo: git log --format=oneline

Mostrar resumo de uma linha dos últimos três commits: git log --oneline -3

Mostrar apenas commits personalizados: git log --author="Sven" git log --grep="Message" git log --until=2013-01-01 git log --since=2013-01-01

Mostrar apenas dados personalizados do commit: git log --format=short git log --format=full git log --format=f

Wow, de fato tem muito conteúdo ai. Alguns eu ja conhecia de alguns perrengues, já outros foram bem recebidos, hehehe.

Algo que uso bastante também é relacionado a apagar branchs locais que já foram mergidas: (Por vezes me vejo em um mar de branchs locais que já não existem mais)

git branch -vv

Usando este comando ele adiciona um flag gone indicando que não há mais tracking para a branch. Isso acontece quando, após um pull request, a branch é mergida e deletada.

Pode-se então usar o output deste comando para efetuar a limpeza das branchs, usando:

git fetch -p && git branch -vv | awk '/: gone]/{ print $1} ' | xargs git branch -d

Espero ter contribuido =D

Opá Thulio, que show cara, não conhecia esses comandos também hehe, vou testar depois, bacana. Eu que agradeço pela contribuição =D

que isso mlk, ficou mt show... tem comandos aí que eu nem conhecia. Vou até deixar nos favoritos do chrome pra ver sempre que precisar

Obrigado miguel kkk, eu tinha feito esse artigo, anteriomente no gist do github, e decide colocar-lo no tabnews, a final, quando mais pessoas podermos ajudar, melhor.

Opa, bem legal para quem precisa entender como usar o git. Duas adições:

  • Nesse post foi feita referência a uma extensão muito útil do VSCode chamada Git Graph que permite ver a evolução do código com estrutura de árvore;
  • Nesse outro post tem mais alguns passos para quem queira configurar a chave de acesso ao GitHub;
Vlw ozono, obrigado pelas edições e pelo exemplo com o gif e outros posts, quanto mais conteúdo melhor, vlw pela contribuição.
TabNews já tem bastante conteúdo a respeito de Git e já dá para fazer um bom compilado. Também já podemos fazer igual no Stackoverflow e responder com `Pergunta repepetida, procure o link tal com a resposta` :grin:
Verdade, seria bem bacana
Comentando para guardar!

[DEV] salvando a tab !!

[DEV] TAB salva!!

Obrigado já salvei aqui no favoritos

De nada john, espero que o resumo possa te ajudar bastante!
Agora que pensei, a plataforma poderia ter algum botão pra marcar artigos favoritos ou artigos já visitados. Seria bem prático, ja que muitos artigos acabam saindo da área de relevantes frequentemente.

Vou salvar esse post para melhorar minhas anotações de git/github.

Obrigado por compartilhar seu conhecimento conosco.

De nada, sempre é bom espalhar conhecimento e ajudar as pessoas.

Um método mais prático, rápido e preguiçoso é usar o GitHub desktop. É uma interface gráfica simples e fácil de usar. Claro, é de extrema importância aprender a utilizar o Git, mas depois do mesmo dominado, podemos nos dar uma xicara de chá kkkk.

Windows e Mac: https://desktop.github.com/ Linux: https://github.com/shiftkey/desktop

Instalar para o Linux é um pouco mais complicado kkk

Verdade da prá usar o GitHub Desktop, ele é bem prático, mas não consegui me acostumar com sua interface, então uso a propria extensão do VSCode.