Como utilizar o git com programação de uma forma simples? Nesse tutorial tentarei descrever como funciona a parte de branch e merge no git. Existem várias formas, mas vou usar com 3 branches, master, dev e quote.
master – parte principal, versão estável do aplicativo.
dev – parte que está em desenvolvimento versão instável.
quote – código em desenvolvimento.
Como utilizar o Git com programação?
Segue foto do fuxograma dos branches.
Nesse primeiro contato com esses dois comandos do git não vou programar algo muito complexo.Vou deixar essa parte mais complexa do git com programação quando começarmos a utilizar o github. Assim, podemos utilizar um maior número de recursos do git e também já estaremos mais avançados.
Mãos a obra.
Iniciando o git e preparando a base
Criando e entrando no diretório.
$ cd Dev/Kotlin/MediaAlunos
Iniciando git e criando arquivo de README.md
$ echo “Média dos Alunos” > README.md
Adicionando README.md ao git e fazendo primeiro commit.
$ git commit -m “Início do programa de média dos alunos”
1 file changed, 1 insertion(+)
create mode 100644 README.md
Utilizar o git para criação dos branches
Agora vamos criar nossos branches e começar a utilizá-los. Então, o checkout -b serve para criar o branch e entrar nele. Deste modo, o primeiro a ser criado será o dev a partir do master. Se apenas utilizar o checkout ele entra no branch existente.
$ git branch
master
Neste momento vamos criar o quote que é onde trabalharemos e faremos o merge no dev. Do mesmo modo, quando for uma versão estável faremos o merge no master.
$git branch
master
* quote
Começando a programar
Vamos criar um programa simples, porém, contendo algumas falhas ainda, para depois corrigirmos.
Segue o programa que deve estar dentro do arquivo media_alunos.kt.
import java.util.Scanner fun main(){ var nome: String? var n1: Double var n2: Double var n3: Double var n4: Double var media: Double var reader = Scanner(System.`in`) println("Digite o nome do aluno:") nome = readLine() println("Digite a nota 1:") n1 = reader.nextDouble() println("Digite a nota 2:") n2 = reader.nextDouble() println("Digite a nota 4:") n3 = reader.nextDouble() println("Digite a nota 4:") n4 = reader.nextDouble() media = (n1+n2+n3+n4)/4 println("nNome: "+nome) println("Média: $media") }
Aperte ctrl+x para sair e salvar, S ou Y para confirmar.
Bom, vamos compilar e ver que o programa funciona, mas ainda faltam
alguns ajustes para melhorar.
Agora vamos executar o programa.
Você pode utilizar o programa. Ele vai fazer a média entre as 4 notas adicionadas.
Utilizar o git no primeiro merge, versão instável
Vamos agora colocarmos ele no branch dev que é a versão instável do programa.
$ git commit -m “Programa funcionando, com falhas”
Entrando no branch dev
Checando em qual branch estamos.
master
quote
Fazendo o merge do quote no dev.
Fast-forward
media_alunos.kt | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 media_alunos.kt
Utilizar o git para deletar o branch quote
Deletamos o branch quote para não ficar com um número grande de branches. Então, recriaremos o mesmo para voltar a programar.
Corrigindo o programa
Recriando quote para fazer a correção.
Agora vamos modificar nosso código fonte para que fique igual ao seguinte.
fun main(){ var nome: String? var n1: Double var n2: Double var n3: Double var n4: Double var media: Double println("Digite o nome do aluno:") nome = readLine() println("Digite a nota 1:") n1 = readNota() println("Digite a nota 2:") n2 = readNota() println("Digite a nota 4:") n3 = readNota() println("Digite a nota 4:") n4 = readNota() media = (n1+n2+n3+n4)/4 println("nNome: $nome") println("Média: $media") } private fun readNota(): Double { var nota = readLine() try{ nota = nota!!.replace(",",".") val y = nota.toDouble() if(y > 10.0) { println("Nota maior que 10, valor = 10.") return 10.0 } else if(y < 0.0) { println("Nota menor que 0, valor = 0.") return 0.0 } else { return y } } catch(e: NumberFormatException){ println("Não foi digitado um número válido, valor = 0.") return 0.0 } }
Vamos sair e salvar com ctrl+x e S ou Y.
Para ver as diferenças usaremos o diff.
diff --git a/media_alunos.kt b/media_alunos.kt index ad08a8c..7d334a0 100644 --- a/media_alunos.kt +++ b/media_alunos.kt @@ -1,5 +1,3 @@ -import java.util.Scanner - fun main(){ var nome: String? @@ -9,20 +7,39 @@ fun main(){ var n4: Double var media: Double - var reader = Scanner(System.`in`) - println("Digite o nome do aluno:") nome = readLine() println("Digite a nota 1:") - n1 = reader.nextDouble() + n1 = readNota() println("Digite a nota 2:") - n2 = reader.nextDouble() + n2 = readNota() println("Digite a nota 4:") - n3 = reader.nextDouble() + n3 = readNota() println("Digite a nota 4:") - n4 = reader.nextDouble() + n4 = readNota() media = (n1+n2+n3+n4)/4 - println("nNome: "+nome) + println("nNome: $nome") println("Média: $media") } +private fun readNota(): Double { + var nota = readLine() + try{ + nota = nota!!.replace(",",".") + val y = nota.toDouble() + if(y > 10.0) { + println("Nota maior que 10, valor = 10.") + return 10.0 + } + else if(y < 0.0) { + println("Nota menor que 0, valor = 0.") + return 0.0 + } + else { + return y + } + } catch(e: NumberFormatException){ + println("Não foi digitado um número válido, valor = 0.") + return 0.0 + } +}
Na frente da linha o sinal de (-) foi retirada. Do mesmo modo, a linha e sinal de (+) foi adicionada a linha.
Adicionando as mudanças ao git.
$ git commit -m “Adicionada função de ler notas.”
Utilizar o git para adicionar o código a versão instável
Adicionar o código ao branch dev.
$ git merge quote
Fast-forward
media_alunos.kt | 35 ++++++++++++++++++++++++++———
1 file changed, 26 insertions(+), 9 deletions(-)
Deletando o branch que não vamos usar.
Utilizar o git para criar nossa primeira versão estável
Para terminar, vamos criar nossa primeira versão estável do programa.
$ git merge dev
Fast-forward
media_alunos.kt | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 media_alunos.kt
Criando a tag da nossa versão.
Vendo o progresso da criação.
commit 3c23036c0abbabd05ca01220ff24bcc15d7e9a18 (HEAD -> master, tag: 1.0, dev) Author: Rodrigo Leutz Date: Wed Sep 25 15:12:42 2019 -0300 Adicionada função de ler notas. commit 7df65c0a1bd09a1361fcaad4a0a74878580366f2 Author: Rodrigo Leutz Date: Wed Sep 25 14:07:18 2019 -0300 Programa funcionando, com falhas commit 27628e037655e93808f545299cd241332af44b71 Author: Rodrigo Leutz Date: Wed Sep 25 13:58:58 2019 -0300 Início do programa de média dos alunos
Para compilar e executar o programa criado basta digitar novamente os comandos.
$ java -jar media_alunos.jar
Na próxima parte sobre como utilizar o git com programação, tentarei descrever melhor os passos vistos até agora para terminar esse programa. E vamos enviar o projeto para o Github.
<- Começando a utilizar o Git com programação