< Return to Video

CC CAP05 2025 VA03 GIT VIAGEM NO TEMPO

  • 0:00 - 0:03
    Você já pensou em voltar no tempo
    para corrigir um problema
  • 0:03 - 0:05
    ou mesmo só para entender
    como algo estava antes
  • 0:05 - 0:07
    de uma nova funcionalidade?
  • 0:07 - 0:10
    Enfim, vamos ver como nós
    podemos fazer isso com o Git.
  • 0:18 - 0:21
    A gente já sabe criar commits
    usando o Git
  • 0:21 - 0:23
    e com isso a gente consegue manter
    um histórico decente
  • 0:23 - 0:25
    das nossas alterações.
  • 0:25 - 0:29
    Mas e se a gente precisa voltar
    no tempo por algum motivo para,
  • 0:29 - 0:32
    não sei, ver como o código
    estava antes da criação
  • 0:32 - 0:35
    de determinado arquivo
    ou mesmo recuperar alguma feature
  • 0:35 - 0:39
    que foi perdida ao longo do tempo,
    mas que está lá no histórico.
  • 0:39 - 0:41
    Enfim, para isso
    nós conseguimos juntar
  • 0:41 - 0:45
    o comando do "git log"
    com outros utilitários
  • 0:45 - 0:48
    e recuperar o conteúdo
    que a gente tinha lá anteriormente.
  • 0:48 - 0:50
    Então,
    vamos lá para a nossa máquina,
  • 0:50 - 0:53
    para a gente criar um repositório
    e entender como tudo isso funciona.
  • 0:53 - 0:55
    Vamos usar a pasta "Projetos"
    que eu já tenho aqui
  • 0:55 - 0:58
    na área de trabalho para criar
    o nosso primeiro repositório.
  • 0:58 - 1:03
    Então, vamos começar criando
    uma pasta chamada "meu aplicativo".
  • 1:03 - 1:07
    E dentro dela vamos abrir uma
    instância do "Git Bash".
  • 1:07 - 1:09
    Aqui dentro nós já sabemos como
    prosseguir.
  • 1:09 - 1:12
    "git status"
    para iniciar um repositório vazio
  • 1:12 - 1:15
    e vamos adicionar
    dois arquivos lá dentro.
  • 1:15 - 1:17
    Ou melhor,
    vamos fazer dois commits,
  • 1:17 - 1:18
    cada um adicionando um arquivo.
  • 1:18 - 1:26
    Vamos começar criando o arquivo
    "pagina-inicial.txt".
  • 1:26 - 1:30
    Vamos lá dentro do Windows Explorer
    e editar o conteúdo desse arquivo
  • 1:30 - 1:33
    colocando alguma coisa
    como por exemplo,
  • 1:33 - 1:35
    "Bem vindo".
  • 1:35 - 1:38
    Salvamos o arquivo
    e vamos registrar essa alteração
  • 1:38 - 1:39
    dentro de um commit.
  • 1:39 - 1:41
    Para isso,
    "git add"
  • 1:41 - 1:45
    e o nome do arquivo
    "pagina-inicial.txt"
  • 1:45 - 1:48
    Vamos usar o "git status" apenas
    para conferir se o nosso arquivo
  • 1:48 - 1:49
    realmente está aqui.
  • 1:49 - 1:51
    Conferimos.
  • 1:51 - 1:54
    Vamos usar o "git commit"
    para de fato persistir
  • 1:54 - 2:00
    essa alteração no nosso histórico,
    "adicionando pagina inicial".
  • 2:00 - 2:01
    Pronto!
  • 2:01 - 2:04
    Vamos limpar o terminal
    e usar o comando "git status".
  • 2:04 - 2:05
    Tudo está limpo por aqui,
  • 2:05 - 2:07
    então vamos implementar
    um outro arquivo
  • 2:07 - 2:09
    para que a gente
    tenha um histórico de fato
  • 2:09 - 2:11
    de alterações
    que aconteceram no nosso projeto.
  • 2:11 - 2:15
    Voltando aqui para a tela visual
    do Windows Explorer,
  • 2:15 - 2:21
    vamos dessa vez criar um outro
    arquivo que vai se chamar "carrinho"
  • 2:21 - 2:24
    e dentro desse arquivo
    nós colocaremos o conteúdo
  • 2:24 - 2:28
    "Carrinho de compras".
  • 2:28 - 2:31
    Agora com o arquivo criado,
    vamos adicioná-lo também no Git,
  • 2:31 - 2:33
    mas dessa vez um pouco diferente.
  • 2:33 - 2:36
    Já usamos o comando "git add"
    passando o nome do arquivo,
  • 2:36 - 2:39
    mas dessa vez
    vamos passar apenas ponto
  • 2:39 - 2:42
    e dessa forma
    adicionar o diretório atual inteiro.
  • 2:42 - 2:44
    Lembre,
    o comando "git add",
  • 2:44 - 2:47
    ele recebe o diretório que queremos
    adicionar ao versionamento
  • 2:47 - 2:49
    e não necessariamente
    o nome do arquivo.
  • 2:49 - 2:50
    Passando o ponto,
  • 2:50 - 2:53
    estamos adicionando
    o diretório atual inteiro
  • 2:53 - 2:54
    e todos os arquivos
    que foram alterados
  • 2:54 - 2:56
    entrarão no próximo commit.
  • 2:56 - 2:59
    Vamos fazer isso então git added
  • 2:59 - 3:03
    ponto e git commit traço m.
  • 3:06 - 3:09
    Carrinho de compras
  • 3:09 - 3:12
    adicionado e pronto.
  • 3:12 - 3:15
    Agora, se usarmos o comando git log,
    conseguimos ver
  • 3:15 - 3:18
    que há dois
    commits no nosso histórico.
  • 3:18 - 3:21
    Chegou a hora então da gente
    manipular um pouco esse histórico.
  • 3:21 - 3:24
    Imagine que a gente quisesse ver
    como o repositório
  • 3:24 - 3:27
    estava durante o momento
    do primeiro commit.
  • 3:27 - 3:30
    Se nós acessarmos o Windows Explorer
    nesse momento,
  • 3:30 - 3:31
    veremos que tem dois arquivos.
  • 3:31 - 3:34
    Mas nós sabemos que no primeiro
    commit tínhamos apenas um.
  • 3:35 - 3:39
    Então vamos executar o comando git
    log para que a gente consiga pegar
  • 3:39 - 3:42
    o identificador
    daquele nosso primeiro commit.
  • 3:42 - 3:44
    Vamos usar o botão
    direito para copiá lo
  • 3:44 - 3:47
    e com ele em mãos,
    vamos usar o comando git checkout.
  • 3:48 - 3:50
    Esse comando
    pegará o diretório atual
  • 3:50 - 3:53
    e vai movê lo para aquele ponto
    na história específico
  • 3:53 - 3:54
    em que nós especificarmos.
  • 3:54 - 3:56
    Então vamos ver como isso funciona.
  • 3:56 - 4:01
    Git checkout é o
    disse que nós copiamos ao dar entre.
  • 4:01 - 4:04
    Repare que várias coisas
    foram informadas pra gente.
  • 4:04 - 4:07
    Não se preocupe, isso aqui
    basicamente está nos informando
  • 4:07 - 4:10
    que o nosso diretório atual,
    o nosso repositório,
  • 4:10 - 4:14
    está apontando para algo
    que está fora do histórico.
  • 4:14 - 4:17
    É como se nós tivéssemos criado
    uma linha do tempo temporária
  • 4:18 - 4:21
    que apenas aponta
    para aquele momento específico.
  • 4:21 - 4:24
    Ok, então se nós
    voltarmos para o Windows Explorer,
  • 4:24 - 4:26
    veremos que não temos mais os dois
    arquivos,
  • 4:26 - 4:28
    apenas aquele
    nosso arquivo principal.
  • 4:28 - 4:32
    Mas novamente, não se preocupe,
    esse arquivo ele não foi excluído.
  • 4:32 - 4:35
    Você está apenas navegando
    no histórico do Git.
  • 4:35 - 4:38
    Usar o Git como ferramenta
    de controle de versão
  • 4:38 - 4:40
    permite que você
    faça esse tipo de coisa
  • 4:40 - 4:43
    muito simples e sem correr o risco
    de perder os seus arquivos
  • 4:43 - 4:46
    caso nós queiramos voltar
    para o histórico que nós tínhamos
  • 4:46 - 4:49
    atualmente, basta usar o comando
    checkout novamente,
  • 4:49 - 4:53
    Só que dessa vez, ao invés de usar
    o resto de algum commit específico,
  • 4:53 - 4:55
    vamos usar a MEM,
  • 4:55 - 4:58
    que é a nossa branch principal
    que escolhemos durante a instalação.
  • 4:58 - 5:00
    Vamos voltar para o terminal
    e ver isso.
  • 5:00 - 5:04
    Então usando o comando git checkout
    vamos informar mem dessa vez.
  • 5:04 - 5:06
    E repare que agora
  • 5:06 - 5:09
    numa mensagem forma
    que nós voltamos para bem Gmail
  • 5:09 - 5:11
    e se voltarmos para o Windows
    Explorer,
  • 5:11 - 5:13
    veremos que os nossos dois arquivos
    estão lá,
  • 5:13 - 5:16
    assim como o nosso histórico
    completo.
  • 5:16 - 5:17
    Com os nossos dois commits.
  • 5:17 - 5:19
    Essa estratégia funciona muito bem
  • 5:19 - 5:20
    para quando nós queremos
  • 5:20 - 5:24
    apenas visualizar o que foi alterado
    ou mesmo como o repositório
  • 5:24 - 5:26
    estava em
    um ponto específico do tempo.
  • 5:26 - 5:28
    Mas imagine que um cenário diferente
  • 5:28 - 5:31
    e que você quer de fato
    desfazer alguma alteração.
  • 5:31 - 5:32
    Imagine, por exemplo,
  • 5:32 - 5:34
    que nós não precisamos mais
    do carrinho de compras
  • 5:34 - 5:37
    e nós queiramos excluir tudo
    relacionado a ele.
  • 5:37 - 5:38
    Uma possibilidade
  • 5:38 - 5:41
    seria, de fato, a gente remover
    esse convite da história do tempo,
  • 5:41 - 5:44
    mas alguém gastou tempo
    implementando aquilo.
  • 5:44 - 5:47
    E, embora essa funcionalidade
    não seja mais útil agora,
  • 5:47 - 5:50
    nós podemos querer
    recuperá la no futuro
  • 5:50 - 5:52
    e tê la no histórico
    é muito importante.
  • 5:52 - 5:55
    Então, o que nós vamos fazer agora
    é criar um novo Comente
  • 5:56 - 5:59
    mais um commit especial
    e quem vai fazê lo é o Git.
  • 5:59 - 6:03
    Esse commit será feito apenas
    para desfazer tudo o que foi feito
  • 6:03 - 6:05
    em um ponto da história específico.
  • 6:05 - 6:08
    Claro, nós vamos precisar do resto
    do commit que nós queremos de fazer
  • 6:08 - 6:11
    e o comando que vamos usar
    é o git reset.
  • 6:11 - 6:12
    Vamos ver como isso funciona.
  • 6:12 - 6:15
    Vamos começar
    usando o comando byte log
  • 6:15 - 6:18
    para que a gente recupere
    os restos dos começos que nós temos.
  • 6:18 - 6:21
    Imagine que esse daqui seja o commit
    que nós queremos desfazer,
  • 6:21 - 6:23
    ou melhor, reverter.
  • 6:23 - 6:26
    Nós vamos copiá lo e usar o comando
    git revert
  • 6:26 - 6:30
    informando aquele hash específico
    ao ter 40.
  • 6:30 - 6:34
    Repare que essa tela
    que abriu para nós não se assuste,
  • 6:34 - 6:38
    está aqui é o editor de texto
    vim que nós escolhemos
  • 6:38 - 6:41
    como opção padrão
    durante a instalação do Git.
  • 6:41 - 6:44
    Existem algumas características
    desse editor
  • 6:44 - 6:48
    que tornam a sua utilização
    um pouco complicada,
  • 6:48 - 6:50
    mas não se preocupe,
    é bem simples de usar.
  • 6:50 - 6:51
    Esse editor.
  • 6:51 - 6:54
    No momento ele está apenas
    pedindo que nós escrevamos
  • 6:54 - 6:57
    a mensagem
    que vai ser anexada a esse commit.
  • 6:58 - 6:59
    Esse commit
  • 6:59 - 7:03
    tem uma única responsabilidade
    reverter um convite específico.
  • 7:03 - 7:06
    Então ele já formatou para a gente
    a seguinte mensagem Revert
  • 7:07 - 7:09
    é o texto que havia naquele commit
    que nós informamos
  • 7:09 - 7:12
    e logo abaixo uma descrição
    um pouco mais complexa.
  • 7:13 - 7:15
    Esse commit reverte o commit tal.
  • 7:15 - 7:18
    Essa mensagem está perfeita
    para o que a gente quer,
  • 7:18 - 7:22
    então basta que saiamos desse editor
    usando o seguinte atalho
  • 7:23 - 7:24
    vamos apertar ESC
  • 7:24 - 7:26
    para garantir que o VIM
    entenda que nós
  • 7:26 - 7:30
    queremos entrar no modo específico
    e então digitar dois pontos,
  • 7:30 - 7:36
    a letra W e a letra que isso fará
    com que o VIM escreva no arquivo
  • 7:36 - 7:39
    o que está na tela
    e então saia dele.
  • 7:39 - 7:40
    Uma vez que nós fizemos isso,
  • 7:40 - 7:44
    vamos voltar para o terminal
    e não estranhem se ele limpar
  • 7:44 - 7:46
    algum conteúdo
    que estava anteriormente.
  • 7:46 - 7:47
    Isso é normal.
  • 7:47 - 7:49
    Vamos usar o comando glitch log
  • 7:49 - 7:52
    e dessa vez
    nós conseguimos conferir o seguinte.
  • 7:52 - 7:55
    Temos os dois commits que nós
    já tínhamos anteriormente
  • 7:56 - 7:59
    e um novo, só que esse commit
    fomos nós que fizemos,
  • 7:59 - 8:02
    mas quem de fato realizou as ações
    foi o Git
  • 8:03 - 8:05
    e se voltarmos no Windows Explorer
  • 8:05 - 8:07
    nós conseguimos ver que
    aquele arquivo não está mais aqui.
  • 8:07 - 8:11
    Então com sucesso,
    nós conseguimos remover um arquivo
  • 8:11 - 8:14
    sem de fato perder aquele conteúdo
    na linha do tempo.
  • 8:14 - 8:18
    Agora imagine que seu objetivo
    não é necessariamente
  • 8:18 - 8:21
    apagar alguma coisa
    e mantê la no histórico,
  • 8:21 - 8:24
    mas sim apagar de vez,
    remover do histórico por completo.
  • 8:25 - 8:27
    Em que cenários
    nós conseguiríamos usar isso?
  • 8:27 - 8:30
    Imagine que você sobe uma senha
    sem querer dentro do seu projeto.
  • 8:31 - 8:33
    Você não quer que essa senha
    fique no histórico,
  • 8:33 - 8:36
    porque, como nós já vimos,
    nós conseguimos remover coisas.
  • 8:36 - 8:39
    Mas acessando o histórico
    com o git checkout
  • 8:39 - 8:42
    é possível a gente acessar
    aquele momento da linha do tempo
  • 8:42 - 8:45
    e ler a sua senha
    sem nenhum problema.
  • 8:45 - 8:48
    Então, nesse cenário,
    nós utilizaremos o Git reset.
  • 8:49 - 8:53
    Ele tem o poder de não
    só voltar no tempo
  • 8:53 - 8:56
    como apagar
    tudo o que estava dali para frente.
  • 8:56 - 8:57
    Vamos ver como que ele funciona.
  • 8:57 - 8:59
    Voltando aqui na máquina,
  • 8:59 - 9:02
    o comando git log nos mostra
    que nós temos três commits.
  • 9:02 - 9:03
    Imagine então
  • 9:03 - 9:07
    que nós quiséssemos voltar no tempo
    para o nosso primeiro commit,
  • 9:07 - 9:11
    apagando por completo
    tudo o que aconteceu dali em diante.
  • 9:11 - 9:15
    Então, dessa vez
    nós usaremos o comando git reset,
  • 9:15 - 9:19
    passando o nosso como o nosso resto
    do primeiro commit.
  • 9:19 - 9:22
    Então vamos copiá lo
    e colocá lo aqui na frente
  • 9:22 - 9:25
    para que esse comando de fato
    apague o histórico.
  • 9:26 - 9:29
    Nós vamos usar a flag
    menos menos hard
  • 9:29 - 9:32
    e quando eu tecla enter
    tudo aconteceu como esperado.
  • 9:33 - 9:36
    Se eu volto no Windows Explorer
    eu não tenho mais o meu arquivo
  • 9:37 - 9:38
    que foi excluído.
  • 9:38 - 9:41
    E se eu tentar acessar o git log
  • 9:41 - 9:43
    para pegar o histórico
    de todos os meus commits,
  • 9:43 - 9:45
    eu vejo que eu só
    tenho apenas um commit
  • 9:45 - 9:48
    e aqueles meus outros dois commits
    foram perdidos para sempre.
  • 9:48 - 9:49
    Dessa forma,
  • 9:49 - 9:52
    a gente consegue se livrar
    de alguns convites indesejáveis
  • 9:52 - 9:56
    que podem acabar acontecendo dessa
    forma, nós conseguimos se livrar
  • 9:56 - 9:59
    completamente de algum
    commit indesejado, excluindo,
  • 9:59 - 10:02
    por exemplo, o vazamento de alguma
    senha ou coisa do tipo.
Title:
CC CAP05 2025 VA03 GIT VIAGEM NO TEMPO
Video Language:
Portuguese, Brazilian
Duration:
10:05

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions