Como o git geralmente é usado? Um par de comandos básicos para "
sincronizar todos ". A frustração do Git geralmente surge entre aqueles que nunca vão além desse entendimento superficial. No entanto, dominar o git certamente valerá a pena. Quanto tempo você gasta usando o git? Eu sugeriria que no seu cinto existem muitas ferramentas que você usa com a metade da frequência e passa o dobro do tempo estudando.
Se você quiser aprender mais sobre o git, sugiro começar no
capítulo 10 do
Pro Git (é grátis!), Depois nos capítulos 2, 3 e 7. O restante é opcional. Neste artigo, discutiremos como usar as ferramentas descritas no livro para trabalho disciplinado e produtivo no git.
O básico: boas descrições de confirmação
Você já deve ter ouvido isso antes, mas seja paciente. Geralmente, você não precisa usar o
git commit -m " "
. Comece configurando o git para usar seu editor favorito:
git config --global core.editor vim
, depois execute o
git commit
. O editor será aberto e você poderá escrever sua descrição do commit. A primeira linha deve ser limitada a 50 caracteres e completada com uma frase:
após aplicar esta confirmação ... "corrigirá a renderização do texto nos idiomas CJK", "adicionará suporte ao protocolo v3", "refatorará o processamento CRTC" etc. etc. Em seguida, adicione uma linha vazia e prossiga com a
descrição estendida do commit , que deve ser codificado em 72 colunas e incluir detalhes como justificação do commit, trade-offs, restrições de abordagem etc.
Usamos 72 caracteres porque essa é a
largura padrão de uma mensagem de email , e o email é uma ferramenta importante para o git. Um limite de 50 caracteres é usado porque a primeira linha se torna o assunto do seu email, e você pode adicionar muito texto como
“[PATCH linux-usb v2 0/13]”
. Você pode achar essas restrições de formatação irritantes e onerosas, mas lembre-se de que outras pessoas leem os logs em um contexto diferente do seu. Geralmente leio logs de confirmação em um monitor vertical e ele não comporta tanto texto em uma linha quanto o seu display 4K 16: 9.
Cada confirmação deve ser uma mudança autônoma
Cada confirmação deve conter apenas uma alteração - evite pequenas alterações não relacionadas em uma confirmação (nesse sentido, eu poderia ouvir com mais frequência minhas próprias dicas). Além disso, evite dividir uma alteração em várias confirmações, a menos que a ideia seja dividida em etapas separadas, cada uma representando uma alteração completa. Se houver várias alterações na sua árvore de trabalho e você precisar confirmar apenas algumas delas, tente
git add -i
ou
git add -p
. Além disso, cada confirmação deve compilar, passar com êxito em todos os testes e evitar erros conhecidos que serão corrigidos em confirmações futuras.
Agora você pode aceitar qualquer confirmação e esperar que o código funcione corretamente. Isso será útil mais tarde, por exemplo, durante a inclusão seletiva de confirmações no ramo de lançamento. Essa abordagem também aprimora a utilidade do
git-bisect 1 , porque se você espera que o código compile e passe nos testes para cada confirmação com êxito, poderá passar um script
git-bisect
que verifica programaticamente a árvore em busca de erros e evita falsos positivos. Esses commits independentes e bem descritos irão simplificar a preparação de descrições de release usando o
git-shortlog , como o
Linux faz com os releases do Linux .
É difícil fazer certo da primeira vez
Chegamos a um dos recursos mais importantes do git, que o diferencia de seus antecessores: edição de histórias. Todos os sistemas de controle de versão vêm com algum tipo de "máquina do tempo", mas antes eram principalmente somente leitura. No entanto, a máquina do tempo git é diferente: você pode mudar o passado. De fato, você é incentivado a fazer isso! Mas eu aviso: apenas mude o passado, que ainda não entrou em um ramo público estável.
A linha inferior é a seguinte. Escrever confirmações sem erros, confirmações autônomas com uma boa descrição é difícil na primeira tentativa. Editar uma história, por outro lado, é fácil e faz parte do fluxo de trabalho eficiente do git. Confira o
git-rebase e use-o livremente. Você pode usar o rebase para reordenar, mesclar, excluir, editar e dividir confirmações. Por exemplo, geralmente faço algumas alterações no arquivo, envio uma confirmação de correção (
git commit -m fixup
) e depois uso o
git rebase -i
para mesclá-lo em uma confirmação anterior.
Várias dicas
- Leia mana! Selecione uma página de manual aleatória do git e leia-a agora. Além disso, se você não leu a página do manual git de nível superior (apenas
man git
), faça isso.
- Na parte inferior de cada mana para um comando git de alto nível, geralmente há uma lista de comandos git de baixo nível nos quais o comando de alto nível se baseia. Se você quiser aprender mais sobre como o comando git de alto nível funciona, tente ler estas páginas de manual.
- Aprenda a selecionar as confirmações corretas com a seleção de rotações .
- As ramificações são úteis, mas você deve aprender a trabalhar sem elas e também ter um bom conjunto de ferramentas em seu cinto. Use comandos como
git pull --rebase
, git send-email -1 HEAD~2
e git push origin HEAD~2:master
.
1. Em poucas palavras, o git bisect é uma ferramenta que executa uma pesquisa binária entre dois commits em seu histórico, analisando os commits entre eles, um de cada vez, para que você possa verificar se há um erro. Dessa forma, você pode calcular a confirmação que causou o problema.
↑