1
00:00:00,000 --> 00:00:04,402
[MÚSICA]

2
00:00:04,402 --> 00:00:08,751
Vamos agora explorar alguns comandos básicos do Git que são muito úteis para

3
00:00:08,751 --> 00:00:10,660
nós nesta especialização.

4
00:00:11,670 --> 00:00:15,299
Há muito mais no Git do que o que cobrimos neste exercício.

5
00:00:18,380 --> 00:00:23,779
Para começar, vá para o local conveniente no computador

6
00:00:23,779 --> 00:00:27,029
e crie uma pasta chamada git-test.

7
00:00:30,340 --> 00:00:35,090
Em seguida, abra esta pasta no seu editor favorito.

8
00:00:37,935 --> 00:00:42,875
Aqui, eu tenho a pasta GIT-TEST que acabamos de criar aberta no

9
00:00:42,875 --> 00:00:45,390
meu Visual Studio Code.

10
00:00:45,390 --> 00:00:51,399
Deixe-me adicionar um arquivo a esta pasta chamada index.html,

11
00:00:51,399 --> 00:00:55,869
agora você pode ver que eu adicionei algum

12
00:00:55,869 --> 00:01:00,504
código HTML neste arquivo index.html.

13
00:01:00,504 --> 00:01:02,580
Vamos salvar as alterações.

14
00:01:02,580 --> 00:01:05,240
Agora vamos mudar para a nossa linha de comando,

15
00:01:06,740 --> 00:01:11,320
na linha de comando ir para a pasta git-test, e

16
00:01:11,320 --> 00:01:15,860
vamos inicializar esta pasta para ser um repositório git.

17
00:01:15,860 --> 00:01:19,800
Então, para fazer isso na linha de comando digite git init.

18
00:01:21,620 --> 00:01:26,020
Agora, esta pasta foi inicializada para ser um repositório git.

19
00:01:27,120 --> 00:01:32,650
Então este é o nosso primeiro comando git que aprendemos, git init.

20
00:01:32,650 --> 00:01:36,320
Isso inicializa a pasta atual como um repositório git e

21
00:01:36,320 --> 00:01:42,380
quando inicializa a pasta, ele marcará essa pasta como um mestre.

22
00:01:42,380 --> 00:01:45,690
Este é o ramo principal do meu kit.

23
00:01:45,690 --> 00:01:48,210
Agora não vamos nos preocupar com ramos e assim por diante,

24
00:01:48,210 --> 00:01:50,665
não vamos lidar com isso neste curso.

25
00:01:50,665 --> 00:01:56,240
Só trabalharemos com o ramo mestre, nesta especialização particular.

26
00:01:56,240 --> 00:01:58,500
Então isso seria marcado como um mestre.

27
00:01:58,500 --> 00:02:02,060
Este é o ponto inicial do nosso repositório.

28
00:02:03,770 --> 00:02:08,410
O próximo comando que vamos olhar é git status.

29
00:02:08,410 --> 00:02:10,510
Se você digitar git status na linha de comando,

30
00:02:10,510 --> 00:02:13,740
ele informará o status atual da pasta.

31
00:02:13,740 --> 00:02:17,460
Então vamos fazer isso na linha de comando e ver o que ele mostra.

32
00:02:19,470 --> 00:02:23,395
Na linha de comando, digite git status e

33
00:02:23,395 --> 00:02:28,945
leia as informações que são tocadas na janela de comando.

34
00:02:28,945 --> 00:02:34,390
Você vê que ele diz no ramo mestre, de modo que é o ramo mestre que adicionamos.

35
00:02:34,390 --> 00:02:40,690
E ele diz, arquivos não rastreados e, em seguida, mostra index.html em vermelho.

36
00:02:40,690 --> 00:02:43,790
Em seu computador específico, ele pode estar usando cores diferentes ou

37
00:02:43,790 --> 00:02:49,040
representar isso de forma diferente ou isso é o que ele mostra no meu Mac.

38
00:02:49,040 --> 00:02:54,040
Então agora, este arquivo index.html que acabamos de criar nesta pasta

39
00:02:54,040 --> 00:02:58,100
não foi adicionado ao nosso repositório git.

40
00:02:58,100 --> 00:03:01,680
Então vamos em frente e adicionar esse arquivo ao repositório git.

41
00:03:01,680 --> 00:03:07,510
Então, para fazer isso, nós dizemos, git add, e você pode simplesmente dizer dot,

42
00:03:07,510 --> 00:03:12,350
o que significa que todos os arquivos no diretório atual serão adicionados ao

43
00:03:12,350 --> 00:03:17,680
que é chamado como a área de teste do meu repositório git.

44
00:03:17,680 --> 00:03:21,740
Então, agora, se eu digitar novamente git status,

45
00:03:21,740 --> 00:03:27,780
você verá que o arquivo index.html está marcado em verde.

46
00:03:27,780 --> 00:03:34,202
E ele diz, alterações a serem confirmadas lá e, em seguida, mostra o nome do arquivo e, em seguida,

47
00:03:34,202 --> 00:03:40,161
isso significa que este arquivo agora está pronto para ser submetido ao meu repositório git.

48
00:03:41,647 --> 00:03:46,100
Então, o próximo comando que vimos foi git add.

49
00:03:46,100 --> 00:03:51,190
Usando o git add você pode adicionar arquivos ou pastas a essa área de teste.

50
00:03:51,190 --> 00:03:57,250
Então, uma vez que você adicioná-lo à área de teste, então você pode enviar esse instantâneo

51
00:03:57,250 --> 00:04:03,100
do status da nossa pasta para o nosso repositório git.

52
00:04:03,100 --> 00:04:06,460
Então isso significa que quando você faz o git commit,

53
00:04:08,130 --> 00:04:12,610
o que este comando fará é submeter o

54
00:04:12,610 --> 00:04:17,250
estado atual de nossas pastas em nossos repositórios git.

55
00:04:17,250 --> 00:04:20,380
Então, todos os arquivos como eles existem no momento,

56
00:04:20,380 --> 00:04:24,720
uma vez que eles foram encenados usando o git add, então eles serão comprometidos com o nosso

57
00:04:24,720 --> 00:04:29,510
repositório git quando executarmos a pasta de comando git.

58
00:04:29,510 --> 00:04:34,650
Então, neste ponto, quando executamos o comando git, então nosso

59
00:04:34,650 --> 00:04:40,750
estado inicial agora será alterado para o primeiro commit para o repositório git.

60
00:04:40,750 --> 00:04:42,650
Então vamos em frente e fazer isso.

61
00:04:45,470 --> 00:04:51,950
De volta ao prompt de comando, vamos digitar git commit.

62
00:04:51,950 --> 00:04:54,888
E então podemos até adicionar uma mensagem ao nosso commit.

63
00:04:54,888 --> 00:05:00,010
Então eu vou dizer git commit -m “first

64
00:05:00,010 --> 00:05:04,160
commit” porque este é o nosso commit para o nosso repositório git.

65
00:05:04,160 --> 00:05:10,630
Então, quando eu faço isso, ele diz, ok, 1 arquivo foi adicionado ao repositório git e

66
00:05:10,630 --> 00:05:15,300
algumas outras informações serão digitadas na janela de comando.

67
00:05:15,300 --> 00:05:20,790
Então vamos agora verificar novamente, git status e

68
00:05:20,790 --> 00:05:26,220
agora você vê que ele não diz nada para confirmar, diretório de trabalho é limpo.

69
00:05:26,220 --> 00:05:31,230
Então o que isso significa é que o estado atual do meu diretório de

70
00:05:31,230 --> 00:05:36,390
trabalho ou pasta de trabalho foi comprometido com o repositório git, então

71
00:05:36,390 --> 00:05:39,330
um instantâneo foi submetido ao meu repositório git.

72
00:05:39,330 --> 00:05:47,200
Agora, eu posso digitar o próximo comando chamado git log —oneline,

73
00:05:47,200 --> 00:05:53,020
e ver que ele mostra um número lá, um número de oito dígitos lá,

74
00:05:53,020 --> 00:05:57,850
e então também mostra a mensagem que colocamos em nosso commit dizendo primeiro commit.

75
00:05:57,850 --> 00:06:03,340
Então esse é o log de todos os commits que foram colocados no meu repositório git.

76
00:06:05,120 --> 00:06:08,900
Então, voltando ao nosso próximo comando git,

77
00:06:08,900 --> 00:06:14,094
vimos que o git log —oneline

78
00:06:14,094 --> 00:06:18,540
nos mostrará um breve log de todos os commits.

79
00:06:18,540 --> 00:06:20,080
Se você simplesmente digitar git log

80
00:06:21,200 --> 00:06:26,220
exibir informações muito mais detalhadas sobre todos os commits.

81
00:06:26,220 --> 00:06:31,344
Mas isso é suficiente para obter informações que precisamos.

82
00:06:33,350 --> 00:06:40,248
Vamos agora voltar ao nosso editor aqui, no Visual Studio Code,

83
00:06:40,248 --> 00:06:46,141
então vou adicionar mais alterações ao meu arquivo index.html.

84
00:06:54,501 --> 00:06:57,790
Mudei meu arquivo index.html.

85
00:06:57,790 --> 00:07:02,450
Agora, deixe-me adicionar outra pasta sob a pasta de teste git, então

86
00:07:02,450 --> 00:07:07,990
eu vou criar uma subpasta aqui chamada templates, e dentro dessa

87
00:07:07,990 --> 00:07:13,450
pasta templates, eu vou criar outro nome de arquivo, test.html.

88
00:07:13,450 --> 00:07:16,230
Isto é apenas para mostrar como o git

89
00:07:16,230 --> 00:07:21,120
pode submeter toda a hierarquia de pastas em seu repositório.

90
00:07:21,120 --> 00:07:26,002
Então, com test.html agora lá, eu

91
00:07:26,002 --> 00:07:31,173
vou apenas copiar tudo do meu index.html

92
00:07:31,173 --> 00:07:36,499
para o meu test.html e salvar as alterações.

93
00:07:39,447 --> 00:07:41,484
Voltando para a linha de comando,

94
00:07:41,484 --> 00:07:46,480
vamos agora verificar o status do nosso repositório git e desta pasta.

95
00:07:46,480 --> 00:07:51,740
Então digite o status do git, mostra que

96
00:07:51,740 --> 00:07:56,020
o arquivo html do status do índice que já entregamos anteriormente ao repositório

97
00:07:56,020 --> 00:08:00,570
foi modificado, então há uma versão mais recente do arquivo index.html.

98
00:08:00,570 --> 00:08:03,220
Além disso, ele mostra que existem alguns

99
00:08:03,220 --> 00:08:05,530
arquivos não rastreados nesta pasta chamados templates.

100
00:08:06,620 --> 00:08:11,794
Vamos adicionar todas essas alterações para o teste

101
00:08:11,794 --> 00:08:16,114
da área, então novamente, digite git add.

102
00:08:16,114 --> 00:08:21,620
E então todos esses arquivos serão adicionados à área de teste.

103
00:08:21,620 --> 00:08:23,940
Novamente, verificando o status.

104
00:08:23,940 --> 00:08:29,490
Agora você vê que as alterações que foram adicionadas à área de preparação.

105
00:08:29,490 --> 00:08:32,850
Então todos esses arquivos foram adicionados à área de teste.

106
00:08:32,850 --> 00:08:36,850
Vamos fazer mais um commit, então

107
00:08:36,850 --> 00:08:42,930
eu diria git commit -m, segundo commit e

108
00:08:42,930 --> 00:08:47,096
então vamos verificar o log.

109
00:08:50,874 --> 00:08:55,246
Se você verificar o log, você verá agora que existem dois commits

110
00:08:55,246 --> 00:08:58,930
no meu repositório git, o primeiro e o segundo commit.

111
00:08:58,930 --> 00:09:03,040
E note que cada um deles recebe um número diferente lá.

112
00:09:03,040 --> 00:09:07,130
Se você quiser ver seus detalhes completos do log,

113
00:09:07,130 --> 00:09:12,510
você pode digitar simplesmente, git log e, em seguida, você receberá mais detalhes lá.

114
00:09:12,510 --> 00:09:15,132
Então o que você estaria interessado.

115
00:09:15,132 --> 00:09:20,114
Então, observe que o commit oneline só dá os

116
00:09:20,114 --> 00:09:24,405
primeiros caracteres do meu número de commit lá.

117
00:09:24,405 --> 00:09:27,028
Isso é suficiente para nós operarmos.

118
00:09:29,245 --> 00:09:34,721
Deixe-me agora voltar para o Visual Studio e, em seguida, adicionar mais um.

119
00:09:43,885 --> 00:09:47,140
Mais uma linha para o meu arquivo index.html.

120
00:09:47,140 --> 00:09:49,800
Então agora meu arquivo index.html foi modificado.

121
00:09:51,660 --> 00:09:53,170
E vamos salvar as alterações.

122
00:09:55,310 --> 00:09:58,530
Voltando para a linha de comando, fazendo o

123
00:09:59,870 --> 00:10:04,490
status do git mostra que o arquivo index.html foi modificado.

124
00:10:04,490 --> 00:10:10,650
Então vamos adicionar isso à área de teste e, em seguida, fazer um terceiro commit.

125
00:10:10,650 --> 00:10:15,716
Então, digamos, git add. ,

126
00:10:15,716 --> 00:10:18,720
git status,

127
00:10:18,720 --> 00:10:22,700
agora você vê que o index.html a versão modificada foi adicionada.

128
00:10:22,700 --> 00:10:27,722
Agora podemos dizer git commit.

129
00:10:31,231 --> 00:10:36,825
“ terceiro commit” e fazer git log —oneline,

130
00:10:36,825 --> 00:10:43,810
e você vê que há três commits em nosso repositório.

131
00:10:43,810 --> 00:10:48,220
Então agora nosso repositório contém instantâneos de três pontos diferentes,

132
00:10:48,220 --> 00:10:51,370
no final do primeiro commit, no final do segundo commit, e

133
00:10:51,370 --> 00:10:53,250
no final do terceiro commit.

134
00:10:53,250 --> 00:10:56,930
Agora, também podemos reverter as alterações,

135
00:10:56,930 --> 00:11:01,590
podemos reverter o repositório para uma versão anterior.

136
00:11:01,590 --> 00:11:04,780
Podemos retirar um arquivo de um commit mais antigo e,

137
00:11:04,780 --> 00:11:09,180
em seguida, substituir o diretório existente do commit antigo.

138
00:11:09,180 --> 00:11:12,370
Então, vamos ver como podemos operar com essas coisas

139
00:11:12,370 --> 00:11:14,120
aprendendo mais alguns comandos.

140
00:11:15,820 --> 00:11:21,450
Nesta fase, nosso arquivo index.html está no estado atual.

141
00:11:21,450 --> 00:11:24,795
Então você pode notar que ele tem um h1 e dois ps.

142
00:11:26,530 --> 00:11:29,365
Vamos agora olhar para o próximo comando git.

143
00:11:30,815 --> 00:11:36,185
O próximo comando git que vamos aprender sobre é git checkout.

144
00:11:36,185 --> 00:11:40,300
Então este comando checkout nos permite fazer check-out de um arquivo

145
00:11:40,300 --> 00:11:44,040
de um commit anterior em nosso repositório git.

146
00:11:44,040 --> 00:11:48,050
Então, se não gostarmos do arquivo atual que temos em nossa pasta e

147
00:11:48,050 --> 00:11:51,160
queremos voltar para sua versão anterior do arquivo,

148
00:11:51,160 --> 00:11:55,090
podemos sempre verificar o arquivo de um commit anterior ou

149
00:11:55,090 --> 00:12:00,230
do commit atual e, em seguida, continuar a trabalhar com esse arquivo.

150
00:12:00,230 --> 00:12:07,431
Então vamos fazer uso disso e ver algumas alterações adicionais em nosso repositório git.

151
00:12:09,228 --> 00:12:15,366
Voltando à nossa linha de comando, lembramos que, entre o segundo e

152
00:12:15,366 --> 00:12:20,235
o terceiro commit, fiz alterações no meu arquivo index.html.

153
00:12:20,235 --> 00:12:25,735
Suponha que eu queira reverter para o arquivo index.html do meu segundo commit.

154
00:12:25,735 --> 00:12:29,885
Então, eu posso simplesmente dizer,

155
00:12:29,885 --> 00:12:34,039
git checkout 900cfcf.

156
00:12:34,039 --> 00:12:41,035
Então isso é commit identificar o número que identifica o commit particular,

157
00:12:41,035 --> 00:12:46,971
e então eu posso dizer index.html, e o que você notaria é que,

158
00:12:46,971 --> 00:12:53,662
esse arquivo mais antigo agora será verificado para fora no meu diretório de trabalho atual.

159
00:12:55,845 --> 00:12:58,018
Indo para o meu Visual Studio Code,

160
00:12:58,018 --> 00:13:03,811
agora você notará que meu arquivo index.html foi revertido para o trabalho anterior, portanto,

161
00:13:03,811 --> 00:13:08,580
a alteração que eu fiz antes do terceiro commit agora desapareceu.

162
00:13:08,580 --> 00:13:16,690
Então, meu arquivo index.html foi restaurado ao seu estado no final do segundo commit.

163
00:13:18,920 --> 00:13:23,042
Agora, na linha de comando, se eu tentar git status,

164
00:13:23,042 --> 00:13:28,403
você notará que este arquivo index.html que foi revertido

165
00:13:28,403 --> 00:13:35,470
para o que era no final do segundo commit, ele já foi encenado.

166
00:13:35,470 --> 00:13:40,930
Então, usando este checkout do git, vamos retirar uma versão mais antiga do arquivo

167
00:13:40,930 --> 00:13:44,390
e, em seguida, substituir o que está no diretório atual, e, em

168
00:13:44,390 --> 00:13:47,670
seguida, ele também irá verificá-lo na área de teste.

169
00:13:48,970 --> 00:13:53,400
Então, agora, se eu fizer isso e então eu percebo que isso é o que

170
00:13:53,400 --> 00:13:56,450
eu quero, eu posso simplesmente fazer outro compromisso neste momento.

171
00:13:56,450 --> 00:14:02,445
E então esse arquivo pode ser confirmado como o quarto commit.

172
00:14:02,445 --> 00:14:07,812
Mas suponha que eu não gosto disso, eu quero dobrar

173
00:14:07,812 --> 00:14:12,641
para voltar para o arquivo index.html no final do

174
00:14:12,641 --> 00:14:18,291
terceiro commit, então tudo o que eu posso fazer é dizer git reset,

175
00:14:20,339 --> 00:14:25,698
HEAD e index.html.

176
00:14:28,236 --> 00:14:33,356
Então, neste ponto, o que acontece é que o index.html,

177
00:14:33,356 --> 00:14:38,796
a versão modificada que eu tinha verificado ainda está lá, mas

178
00:14:38,796 --> 00:14:43,397
este arquivo não foi preparado da área de teste.

179
00:14:43,397 --> 00:14:49,803
Se você voltar e olhar para o index.html em seu editor,

180
00:14:49,803 --> 00:14:56,680
ele ainda mostrará o estado no final do segundo commit.

181
00:14:56,680 --> 00:15:01,250
Porque tínhamos retirado o arquivo usando o checkout para isso.

182
00:15:01,250 --> 00:15:06,900
Agora, se você quiser revertê-lo de volta para o que era no final do terceiro commit,

183
00:15:06,900 --> 00:15:11,956
então nós fazemos mais um checkout do terceiro commit indo para a nossa

184
00:15:11,956 --> 00:15:18,900
janela de comando, digite git status e

185
00:15:18,900 --> 00:15:23,920
você notaria que o index.html está marcado como modificado.

186
00:15:23,920 --> 00:15:28,870
Mas também mostra esta afirmação em particular aqui.

187
00:15:28,870 --> 00:15:32,270
Ele diz git checkout — e

188
00:15:32,270 --> 00:15:35,310
o nome do arquivo, para descartar as alterações nos diretórios de trabalho.

189
00:15:35,310 --> 00:15:39,270
Portanto, essa é uma forma de descartar as alterações que você fez em um determinado

190
00:15:39,270 --> 00:15:43,095
arquivo correspondente ao comentário anterior.

191
00:15:43,095 --> 00:15:46,875
Então deixe-me apenas restaurar esse index.html de volta ao que era no final

192
00:15:46,875 --> 00:15:48,205
do terceiro commit.

193
00:15:48,205 --> 00:15:52,455
Então, para fazer isso, eu poderia simplesmente dizer git, checkout,

194
00:15:52,455 --> 00:15:58,540
— index.html e então,

195
00:15:58,540 --> 00:16:05,480
se eu fizer git status, ele mostra que meu diretório está limpo.

196
00:16:05,480 --> 00:16:08,130
E basicamente meu diretório foi restaurado para

197
00:16:08,130 --> 00:16:10,520
o estado no final do terceiro commit.

198
00:16:12,370 --> 00:16:17,580
Indo para o arquivo no meu Virtual Studio Code, vejo que

199
00:16:17,580 --> 00:16:21,060
seu arquivo foi restaurado de volta ao que era no final do terceiro limite.

200
00:16:21,060 --> 00:16:24,740
Então esta é uma maneira que você pode, se você fez alterações em seu

201
00:16:24,740 --> 00:16:27,740
arquivo após o commit e você quer simplesmente descartar essas alterações,

202
00:16:27,740 --> 00:16:31,810
você pode simplesmente verificar o arquivo do último commit, e então todas

203
00:16:31,810 --> 00:16:36,220
as suas alterações que você fez após o último commit serão descartadas no local.

204
00:16:36,220 --> 00:16:40,960
Então estes são alguns comandos básicos que são muito úteis para

205
00:16:40,960 --> 00:16:44,510
você enquanto você percorre os cursos nesta especialização

206
00:16:44,510 --> 00:16:49,160
porque você pode querer se comprometer no final de cada exercício.

207
00:16:49,160 --> 00:16:56,220
E à medida que você avança, você ainda teria uma visão guiada

208
00:16:56,220 --> 00:17:01,790
do estado de sua pasta no final do exercício anterior.

209
00:17:01,790 --> 00:17:06,180
Dessa forma, se você está realizando um novo exercício e você descobriu que

210
00:17:06,180 --> 00:17:10,320
cometeu erros e quer reverter para o commit anterior,

211
00:17:10,320 --> 00:17:18,000
você sempre tem uma maneira de fazer isso usando os comandos que acabamos de deixar.

212
00:17:18,000 --> 00:17:24,430
Assim, com esta compreensão básica destes poucos comandos git,

213
00:17:24,430 --> 00:17:29,260
você será capaz de prosseguir com a compreensão e

214
00:17:29,260 --> 00:17:33,570
uso do git nos cursos desta especialização.

215
00:17:35,560 --> 00:17:41,685
Então, agora, nós revisamos o git reset para um arquivo específico ou git reset em geral.

216
00:17:41,685 --> 00:17:47,970
Se você simplesmente digitar git reset, ele irá restaurá-lo de volta para o último commit.

217
00:17:47,970 --> 00:17:50,680
Assim, ele irá redefinir a área de teste para o último commit,

218
00:17:50,680 --> 00:17:55,270
sem perturbar as alterações que você fez em seu diretório de trabalho.

219
00:17:55,270 --> 00:17:58,390
Então, uma vez que você redefinir, então você pode verificar

220
00:17:58,390 --> 00:18:02,140
a versão anterior do arquivo que você confirmou no commit anterior.

221
00:18:02,140 --> 00:18:07,380
Então, esta semana, você pode restaurar sua pasta de volta para o local onde você estava

222
00:18:07,380 --> 00:18:10,450
no ponto inicial da confirmação anterior.

223
00:18:10,450 --> 00:18:15,300
Então, às vezes, quando você está passando por um exercício e você percebe que perdeu uma deixa.

224
00:18:15,300 --> 00:18:20,174
Sempre tenha uma maneira de reverter para uma versão anterior.

225
00:18:20,174 --> 00:18:25,027
Então, com esses comandos, eu acho que você está pronto para ir em frente para

226
00:18:25,027 --> 00:18:28,849
usar o git nos cursos desta especialização.

227
00:18:31,070 --> 00:18:34,395
Então, no final deste exercício, você fez isso?

228
00:18:34,395 --> 00:18:37,459
[ MUSIC]