MentoriaGitHub
Repositório criado para auxiliar os alunos da Gama Academy nas aulas de Github.
Install / Use
/learn @DanielObara/MentoriaGitHubREADME
Resumidão (do clone ao push)
Se você já sabe executar todo o fluxo e só quer relembrar, deixo abaixo o fluxo (básico e sem criação de branch) resumido mas se voce quiser saber detalhadamente recomendo prosseguir a leitura.
# Clone o repositório
$ git clone https://github.com/DanielObara/MentoriaGitHub
# Modifique algo e adicione ao stage
$ git add .
# Commite com a mensagem do que fez, siga o commitlint!
$ git commit -m "feat(lang): add portuguese language"
# Suba suas alterações
$ git push
Criando um novo repositório:
Crie uma nova pasta, abra-a e no terminal execute o comando
$ git init
Clonando um repositório:
Crie uma cópia de trabalho em um repositório local executando o comando:
$ git clone /caminho/para/o/repositório
Quando usar um servidor remoto, por exemplo o GitHub, seu comando será:
$ git clone https://github.com/DanielObara/MentoriaGitHub
O endereço do servidor remoto (repositório) o endereço (link) você pode obter clicando no botão code na página do repositório.
Exemplo abaixo:
<p align="center"> <img src=".github/btn-to-clone.png" alt="Imagem demonstrando o botão verde para clonar o repositório"></img> </p>Para acessar o projeto recém clonado, acesse a pasta do projeto e caso tenha acessado via terminal digite:
$ code .
Caso não seja via terminal clique com o botão direito dentro da pasta e veja se tem a opção de abrir no VSCode.
Atualizando o repositório remoto:
Seus repositórios locais consistem em três "árvores" mantidas pelo git. A primeira delas é sua Working Directory que contém os arquivos atuais, a segunda Index / Stage que funciona como uma área temporária e finalmente a HEAD que aponta para o último commit (confirmação) que você fez.
<p align="center"> <img src="./.github/trees.png" alt="Imagem demonstrando as três arvores (uma pasta que é o diretório de trabalho seguida de uma estrutura que é a index / stage e depois a estrutura concretizada que se torna a head)" ></img> </p>Adicionar & Confirmar
Você pode propor mudanças (adicioná-las ao Index) usando:
# Para adicionar um arquivo em particular
$ git add caminho/até/o/arquivo
# Ou para adicionar todas as alterações:
$ git add .
# ou pode-se usar *
$ git add *
Este é o primeiro passo no fluxo de atualizar o repositorio de forma básica do git.
Para realmente confirmar estas mudanças (isto é, fazer um commit), use:
$ git commit -m "Mensagem dizendo o que eu fiz nessas alterações"
**Obs: recomendo seguir a convenção de commit conhecida como conventional changelog ou commitlint
Agora o arquivo é enviado para o HEAD, mas ainda não foi enviado para o repositório remoto (aquele lá nos servidores/nuvem do Github).
Enviando as alterações:
Lembre-se que suas alterações agora estão no HEAD da sua cópia do repositório local. Para enviar estas alterações ao seu repositório remoto, execute
$ git push origin main
Altere main para qualquer ramo (branch) desejado, enviando suas alterações para branch específica. Caso não especifique qual branch, o git entenderá por padrão a branch atual que você estiver.
Se você não clonou de um repositório que já existe e quer conectar seu repositório a um no servidor remoto (GitHub por exemplo), você deve adicioná-lo com
$ git remote add origin <servidor>
Ficaria assim:
$ git remote add origin git@github.com:DanielObara/MentoriaGitHub.git
Agora você é capaz de enviar suas alterações para o servidor remoto selecionado.
Criando o branch
Branches ("ramos") são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch main é o branch "padrão" quando você cria um repositório. Use outros branches para desenvolver e junte-os (merge) ao branch main após a conclusão.
Por questão de padrão de nomenclatura costumo nomear as branchs com prefixo do que ela significa. Por exemplo:
- bugfix/
- feature/
- refactor/
- doc/
Crie um novo branch chamado "feature/Navbar" e selecione-o usando:
$ git checkout -b doc/CreateBranchSection
retorne para o main usando
$ git checkout main
e remova o branch da seguinte forma
$ git branch -d doc/CreateBranchSection
Um branch não está disponível aos outros a menos que você envie o branch para seu repositório remoto.
Ao tentar efetuar o push, receberá a seguinte mensagem no terminal:
<p align="center"> <img src="./.github/--set-upstream.png" alt="Imagem demonstrando mensagem no terminal. Mensagem: To push the current branch and set the remote as upstream, use git push --set-upstream origin doc/CreateBranchSection"></img> </p>$ git push --set-upstream origin doc/CreateBranchSection
Após isso a branch será enviada ao repositório remoto e você obterá a seguinte resposta em seu terminal:
<p align="center"> <img src="./.github/setup-track-remote-branch.png" alt="Imagem demonstrando mensagem de sucesso de upload do branch ao remoto. Mensagem: Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'doc/CreateBranchSection' on GitHub by visiting: remote: https://github.com/DanielObara/MentoriaGitHub/pull/new/doc/CreateBranchSection remote: To https://github.com/DanielObara/MentoriaGitHub.git * [new branch] doc/CreateBranchSection -> doc/CreateBranchSection Branch 'doc/CreateBranchSection' set up to track remote branch 'doc/CreateBranchSection' from 'origin'."></img> </p>Pronto! Seu branch foi enviada ao remoto e só falta você ir no github e fazer um pull request.
Fazendo o Pull Request
Para fazer o pull request utilizaremos a interface web do github.
Acesse o repositório que deseja fazer o Pull Request, é necessário que tenha feito os passos anteriores (criação do branch, add, commit e push), haverá uma nova caixa de informação informando que seu branch teve alterações recentes e um botão para comparar e solicitar um pull request.
<p align="center"> <img src="./.github/create-pull-request.png" alt="Imagem demonstrando o github e as informações de sua nova branch e com botão de comparar & pull request"></img> </p>Ao clicar no botão será redirecionado para uma nova página onde haverá um campo para colocar o título e a descrição da sua solicitação.
Caso queira poderá selecionar quais as branchs quer mesclar, mas por padrão já fica selecionado a main com a sua branch. (base: main <- compare: NomeDaSuaBranch)
Depois disso só clicar em Create Pull Request ou Criar pull request caso esteja em português.
<p align="center"> <img src="./.github/description-pull-request.png" alt="Imagem demonstrando a página para inserir as informações de título, descrição e quais as branchs quer mesclar (mergear)"></img> </p>Há mais informações na tela no qual você poderá atribuir a quem quer que faça a revisão, de quem é a tarefa ou assinar à alguém, labels, de qual projeto etc.
**Observação: Caso sua branch esteja com código em andamento, poderá colocar no início do título a sigla WIP que significa Work in Progress, ou seja a pessoa responsável por aceitar seu pull request não ira mesclar até que esteja finalizado.
Atualizar & mesclar (merge)
Para atualizar seu repositório local com a versão mais nova, na sua pasta de trabalho e via terminal execute o comando:
$ git pull
Para fazer merge de um outro branch ao seu branch ativo. Supondo que você esteja na main e quer mesclar a branch doc/CreateBranchSection na main, use:
$ git merge doc/CreateBranchSection
Ou pode ser o inverso, atualizar a sua branch com a main. Em ambos os casos o git tenta fazer o merge das alterações automaticamente.
Infelizmente, isto nem sempre é possível e resulta em conflitos. Você é responsável por fazer o merge estes conflitos manualmente editando os arquivos exibidos pelo git. Depois de alterar, você precisa marcá-los como merged com o seguinte comando:
$ git add .
# Ou
$ git add <NomeDoArquivo>
Antes de fazer o merge das alterações, você pode também pré-visualizá-as usando
$ git diff <branch origem> <branch destino>
# ficaria assim:
$ git diff doc/UpdateAndMerge main
Qual a situação atual (git status)?
Para verificar o que foi feito e qual a situação (Se está atualizado ou se tem modificações) execute o comando abaixo:
$ git status
Após executar git status você verá qual branch se encontra e quais as alterações e arquivos não monitorados pelo git.
<p align="center"> <img src="./.github/git-status.png" alt="Imagem demonstrando mensagem após execução do comando git status: No ramo doc/CreateBranchSection Your branch is up to date with 'origin/doc/CreateBranchSection'. Changes not staged for commit: (utilize git add <arquivo>... para atualizar o que será submetido) (use git restore <file>...Related Skills
apple-reminders
349.0kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
349.0kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
349.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
