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
Crie uma nova pasta, abra-a e no terminal execute o comando
$ git init
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:
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.
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.
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).
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.
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/
Branch de um bug que necessita ser corrigido.
- feature/
Uma nova feature que será adicionada ao projeto.
- refactor/
Quando precisamos fazer uma melhoria em algum trecho do código
- doc/
Quando fazemos alguma alteração ou criação de documentações
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:
$ 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:
Pronto! Seu branch foi enviada ao remoto e só falta você ir no github e fazer um 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.
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.
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.
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
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.
- Crie um fork;
- Crie um branch com suas features:
git checkout -b feature/my-feature
; - Commit suas alterações:
git commit -m 'feat: My new feature'
; - Faça um push com a sua branch
git push origin my-feature
; - Crie um pull request no GitHub.
Após mergeado voce receberá a mensagem de que foi concluído e poderá deletar sua branch.
Made with ♥ by Daniel Obara 👋 Get in touch!
Fontes: Git, rogerdudler & GitHub - Docs