Durante o desenvolvimento é comum alterarmos o mesmo arquivo diversas vezes e se você gosta de manter um histórico consistente de suas alterações você pode esbarrar na situação onde um arquivo foi alterado em mais de um ponto e quer separar em commits distintos essas alterações.
Pra exemplificar este aqui é o código que iremos trabalhar:
Agora o que queremos fazer é adicionar uma função que verifica se o cliente é valido (o nome deverá ter mais de três caracteres e a idade deve ser um número maior ou igual a zero).
Como podemos ver no cenário acima, a função valida_cliente foi criada e depois nós adicionamos na função inserir_cliente a chamada dessa função. O que queremos fazer aqui é criar um commit com a função valida_cliente e seus testes e no outro commit a alteração na função inserir_cliente e seus novos testes.
Se utilizarmos os comandos que usamos mais comumente no nosso dia a dia iremos colocar todas as alterações em um único commit e entrega-las.
![]() |
Diferenças nos arquivos |
No geral essa situação é comum, mas podem existir casos excepcionais onde teremos que fazer o procedimento onde criamos commits para as alterações em partes menores. Para conseguirmos fazer isso iremos utilizar o git add de maneira interativa, que irá abrir uma caixa de dialogo com diversas opções do que podemos realizar. Vamos executar o comando git add -i main.py
Iremos selelecionar a opção patch (digitando 5 ou "p"), após isso será apresentada a lista de arquivos que queremos atuar. Selecionamos nosso arquivo main.py com a opção 1 e agora podemos pressionar Enter para iniciar. Logo de cara todas as alterações serão oferecidas para inserirmos, porém não é isso que desejamos, então utilizando a opção s fazemos um split e então começará a ser oferecido pedaços de alterações para incluirmos ou recusarmos, com y e n respectivamente. O processo para o nosso arquivo foi feito conforme a gravação abaixo. Ao final dos pedaços de alteração que foram oferecido voltamos para o menu inicial e podemos pressionar 7 ou q para sair:
![]() |
Processo de inclusão interativa de trechos do arquivo |
Após isso fiz o commit das alterações incluídas e realizando um git diff podemos ver que a inclusão da função de validação não foi feita, conforme queriamos, vamos reservar um commit só para ela:
![]() | |||
Fazendo commit da alteração que falta |
Caso tenha alguma sugestão ou dúvida não esqueça de utilizar os comentários. =)
Nenhum comentário:
Postar um comentário