Como utilizar o Git no Github (final)

GitHub contabilizou mais de 56 milhões de desenvolvedores na plataforma, com mais de 60 milhões de novos repositórios. Imagem: GitHub.

Para começar esta quarta e última parte do tutorial sobre como utilizar o git no Github vamos fazer um clone do repositório que vimos no passado e depois vamos começar a programar para fazer as mudanças e lançar uma versão estável.

Para clonar o repositório

$ git clone https://github.com/rodrigo-leutz-sempreupdate/media-alunos

Como utilizar o github para checar os branches existentes no repositório.

$ git branch -r

Criando o branch para começar a edição.

$ git checkout -b quote dev

Criando funções para vários alunos

Editando o programa.

$ nano media_alunos.kt

Agora vamos deixar o arquivo media_alunos.kt da seguinte forma.

var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() alunoList.add(aluno) } private fun listAluno(){ if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) } } readLine() } private fun readAluno(): Aluno { println("Digite o nome do aluno:") val nome = readLine() println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 println("nNome: "+aluno.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 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )
ctrl+x e S ou Y para salvar.

Fazendo um novo commit das mudanças.

$ git add media_alunos.kt
$ git commit -m “Adicionado menu para ter vários alunos.”

Criar função de remover alunos

Vamos editar o arquivo novamente e adicionar a função de remover alunos, deixando o código da seguinte forma.

$ nano media_alunos.kt
var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } "3" -> { removeAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("3 --> Deleta aluno") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() alunoList.add(aluno) } private fun listAluno(){ if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) } } readLine() } private fun getIndex(nome: String): Int? { return alunoList.indexOfFirst { it.nome == nome } } private fun removeAluno(){ var nomeAluno: String? = readLine() if(nomeAluno == null){ println("Nome é nulo") } else{ val ind = getIndex(nomeAluno) if(ind == null){ println("Não tem nenhum aluno com esse nome.") } else { alunoList.removeAt(ind) } } } private fun readAluno(): Aluno { println("Digite o nome do aluno:") val nome = readLine() println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 println("nNome: "+aluno.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 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )

ctrl+x e S ou Y para salvar.

$ git add media_alunos.kt
$ git commit -m “Adicionada função de remover aluno.”

Vamos executar o programa para ver como está.

$ ./kompila media_alunos.kt

Podemos ver que ainda contêm erros no código, então vamos arrumar todos eles e criar a nossa versão estável do código.

Como utilizar o github para criar uma versão estável

Editando arquivo para mudanças finais.

$ nano media_alunos.kt
var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } "3" -> { removeAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("3 --> Deleta aluno") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() if(aluno != null){ alunoList.add(aluno) } } private fun listAluno(){ var mediaTotal: Double = 0.0 if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) mediaTotal += getMedia(alunoList.get(x)) } mediaTotal = mediaTotal/alunoList.size println("nnMédia da sala: $mediaTotal") } readLine() } private fun getIndex(nome: String): Int? { return alunoList.indexOfFirst { it.nome == nome } } private fun existeNome(nome: String): Boolean { val exist = alunoList.find { it.nome == nome } if(exist == null){ return false } else{ return true } } private fun removeAluno(){ println("Digite o nome do aluno a ser removido:") var nomeAluno = readNome() if(!existeNome(nomeAluno)){ println("Não tem nenhum aluno com esse nome.") readLine() } else { val ind = getIndex(nomeAluno) alunoList.removeAt(ind!!) } } private fun readNome(): String{ var nome: String? do{ nome = readLine() if(nome == "") println("Nome não pode ser nulo. Digite novamente") } while(nome == "") return nome!! } private fun readAluno(): Aluno? { println("Digite o nome do aluno:") val nome = readNome() if(existeNome(nome)){ println("Aluno ja existe") readLine() return null } println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = getMedia(aluno) println("nNome: "+aluno.nome) println("Média: $media") } private fun getMedia(aluno: Aluno): Double { return (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 } 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 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )

ctrl+x e S ou Y para salvar.

Executando o programa terminado para dar uma olhada.

$ ./kompila media_alunos.kt
Média dos Alunos

Como utilizar o github para fazer o ultimo commit e enviar a versão estável

Agora vamos a parte final de nosso tutorial, escrever nosso último commit e fazer o upload para o branch dev e depois para o master inserindo a tag que significa versão estável no nosso exemplo.

Adicionando nosso arquivo ao git.

$ git add media_alunos.kt

Fazendo o commit

$ git commit -m “Projeto finalizado”

Fazendo mudanças no README.md para ver como funciona

Vamos mudar o arquivo README.md para ficar da seguinte forma.

$ nano README.md
# Média dos Alunos

- Aplicativo que calcula a média dos alunos de uma sala e a média da sala.

ctrl+x e S ou Y para salvar.

Assim podemos ver que é possível usar algumas tags para mudar como é apresentado o arquivo quando se entra no repositório. Também é possível utilizar algumas tags html.

Adicionando arquivo ao commit

$ git add README.md

Fazendo o commit da mudança no README.md.

$ git commit -m “Arrumando o readme”

Agora vamos criar a tag de versão estável.

git tag 2.0

Como utilizar o github para enviar para atualizar o branch dev

Entrando no branch dev.

$ git checkout dev

Fazendo merge do branch quote no dev.

$ git merge quote

Utilizar o github para enviar as atualizações.

$ git push

Como utilizar o github para enviar as tags das versões.

$ git push –tags

Como utilizar o github para enviar a versão estável

Mudando para o branch master.

$ git checkout master

Fazendo o merge do branch dev no master.

$ git merge dev

Enviando as atualizações no branch master.

$ git push

Para ver os logs.

$ git log

Ou se preferir ver em um aplicativo gráfico.

$ gitk

Assim termino essa série de tutoriais com como utilizar o git no github final.

<- Como utilizar o Git no Github

 

Share This Article
Follow:
Usuário do Linux há mais de 20 anos. Desenvolvedor Web e Android ( Kotlin e Java ). Membro da equipe de suporte do sempreupdate.
Sair da versão mobile