Guilherme Puida
2025-03-12
Os comandos do git são divididos em duas categorias:
add, diff, commit,
push, pull, merge,
rebase, …merge-file, hash-object,
update-ref, mktree, …
pulladdcommitpushPrincípio da responsabilidade única.
É importante seguir um padrão.
commit b60ac54861f7a321b74740445e1b384dddc2cfbd
Author: Guilherme Moreira <guilherme.moreira@placeti.com.br>
Date: Mon Jan 6 11:15:42 2025 -0300
[2296] fix: não aplica descontos para anuidades de 2024 migradas
Quando um débito é legado, usamos a configuração vigente para o
regional. Usamos essa configuração para obter a data de vencimento da
anuidade, para definir os descontos que são enviados para o Banco do
Brasil.
Útil para git bisect.
git reflogLog de todas as ações realizadas na cópia local do repositório. Útil quando alguma coisa quebra e você não sabe como resolver.
man git-reflog
git reset/restore/revertreset: para atualizar a branch, adicionando ou
removendo commits. Essa ação altera o histórico de commits.restore: restaura arquivos da working tree com
os conteúdos do index ou de outro commit/tag/branch. Essa ação
não atualiza sua branch nem altera o histórico de commits.revert: faz um novo commit que reverte as mudanças de
um commit anterior.man git | grep "Reset, restore and revert" -A 10
git bisectBusca biária para encontrar o commit que introduziu um bug ou novo comportamento.
man git-bisect
git stashGuarda as modificações atuais e volta para o estado limpo da árvore.
man git-stash
git add --patchgit add --interactivegit status --shortgit switch -git restore --stagedgit diff --stagedgit rebase --interactive --autostash --autosquashgit log --patchEstratégia de branching, introduzida em 2010 por Vincent Driesses.
Isolar o seu desenvolvimento em tipos distintos de branch
maindevelopfeaturereleasehotfixmainCódigo pronto para produção.
developCódigo pré-produção, com novas features desenvolvidas e que estão no processo de teste.
featureBranch temporária, usada para adicionar novas features. Tipo de branch mais comum.
releaseUsada para preparar uma nova release. Tipicamente é alvo de pequenos bugfixes específicos para a próxima versão em produção.
Permite que o desenvolvimento principal (que deve ser na
develop) seja isolado.
hotfixUsado para correções na main, sem ter que passar pela
develop antes.
maindeveloprelease/1.0 ← develophotfix/bug-critico ← mainfeature/novo-botao ← develop