Git Flow Flashcards
Quais são as branches padrões para um bom fluxo no git?
main -> prod develop feature release hotfix support
Como configurar o git flow?
git init
git flow init
> Definir os padrões do projeto. O padrão é uma boa ideia
git flow feature start
> desenvolve a feature, add, commit e para finalizar a feature:
git flow feature finish
> ele irá realizar o merge com a develop, mergear com a develop e remover a branch feature
Agora é a hora de criar a release:
git flow release start 0.1.0
git flow release finish 0.1.0
> Irá realizar o merge no main e criar uma tag (em tese, leve para produção)
Imagine que deu um problema em produção, e é necessário realizar uma correção. git checkout main git flow hotfix start contact > Criou nova branch hotfix/contact > Realize as alterações, add commit
git flow hotfix finish contact
Como garantir a segurança dos commits no Git?
Trabalhando com assinaturas nos commits através do GPG (GNU Privacy Guard).
É necessário ter o gpg instalado
Como configurar assinatura GPG?
Primeiro é necessário ter o gpg instalado. O wsl2 já possui.
Listar as chaves:
gpg –list-secret-key –keyid-form LONG
Criar a chave gpg --full-generate-key > 1 - rsa > 4096 > 1y (1 ano) > nome: Paulo Mulotto > email: paulo.mulotto@gmail.com > inserir uma senha
Os dados são guardados na pasta home/.gnup
Ex: /home/mulotto/.gnupg/
listando novamente as chaves, é possível ver a chave criada
gpg –armor –export
Copiar a chave gerada e inserir no github.
Github > settgins > SSH and GPG keys
New GPG key
É necessário dizer para o git a chave que ele vai utilizar. então:
git config –global user.signingKey
export GPG_TTY=$(tty)
Adicionar no .bash para não ter que executar todas as vezes:
export GPG_TTY=$(tty)
Agora precisamos assinar por padrão o commit: > do repositório atual: git config commit.gpgSign true > para todos os repositórios: git config --global commit.gpgSign true > para também assinar as tags: git config --global tag.gpgSign true
Se não quiser configurar como global, utilize a flag -S para utilizar a assinatura
git commit -S -m “index html”
Como ver se o commit está assinado?
git log –show-signature -1
Irá mostrar que foi assinado na chave
No git, é possível ver no commit que está com o status “Verifed”
Como proteger as branches?
No repositório, ir sem settings > branches.
Defina como branch padrão como a develop (os pull requests começam a ser abertos automaticamente para ela) .
Proteger a branch main
O que é Pull Request?
Pull request é equivalente ao merge request do gitlab.
É uma solicitação de envio de código para uma branch destino
Como criar um template para os Pull Request?
Adicione um arquivo na pasta .github/PULL_REQUEST_TEMPLATE.md
com o template desejado.
Você pode obter um template de exemplo aqui:
https://embeddedartistry.com/blog/2017/08/04/a-github-pull-request-template-for-your-projects/
O que são CODEOWNERS?
São donos do repositório, pastas ou do arquivos.
É necessário criar um arquivo em .github/CODEOWNERS.
*.js @paulomulotto
.github/ @paulomulotto
*.go @grupo-x
Qual o plugin do visual studio que ajuda nos pull request?
GitHub Pull Requests and Issues