Executando verificação de segurança...
13

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

Git and Github

Git | Como configurar e Upar no GitHub

Instalação   |    Autenticação   |    Upload para GitHub   |    Erros   |    Comandos extras   |   

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

Carregando publicação patrocinada...
2

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

1
2

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

1

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.

1

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;
1
1

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 😁

1
1
1
1
1
1
1

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.

1
1
1
1

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.