1
00:00:00,000 --> 00:00:04,402
[МУЗЫКА]

2
00:00:04,402 --> 00:00:08,751
Давайте теперь рассмотрим некоторые основные команды Git, которые очень полезны для

3
00:00:08,751 --> 00:00:10,660
нас в этой специализации.

4
00:00:11,670 --> 00:00:15,299
Git гораздо больше, чем то, что мы освещаем в этом упражнении.

5
00:00:18,380 --> 00:00:23,779
Чтобы начать работу, перейдите в удобное расположение на вашем компьютере, а

6
00:00:23,779 --> 00:00:27,029
затем создайте папку с именем git-test.

7
00:00:30,340 --> 00:00:35,090
Затем откройте эту папку в своем любимом редакторе.

8
00:00:37,935 --> 00:00:42,875
Здесь у меня есть папка GIT-TEST, которую мы только что создали в

9
00:00:42,875 --> 00:00:45,390
моем Visual Studio Code.

10
00:00:45,390 --> 00:00:51,399
Позвольте мне добавить файл в эту папку с именем index.html,

11
00:00:51,399 --> 00:00:55,869
теперь вы можете видеть, что я добавил некоторый

12
00:00:55,869 --> 00:01:00,504
HTML-код в этот файл index.html.

13
00:01:00,504 --> 00:01:02,580
Давайте сохраним изменения.

14
00:01:02,580 --> 00:01:05,240
Теперь давайте переключимся на нашу командную строку,

15
00:01:06,740 --> 00:01:11,320
в командной строке перейдите в папку git-test, и

16
00:01:11,320 --> 00:01:15,860
давайте инициализируем эту папку, чтобы быть репозиторием git.

17
00:01:15,860 --> 00:01:19,800
Поэтому, чтобы сделать это в командной строке введите git init.

18
00:01:21,620 --> 00:01:26,020
Теперь эта папка была инициализирована как репозиторий git.

19
00:01:27,120 --> 00:01:32,650
Итак, это наша первая команда git, которую мы узнали, git init.

20
00:01:32,650 --> 00:01:36,320
Это инициализирует текущую папку как репозиторий git, и

21
00:01:36,320 --> 00:01:42,380
когда он инициализирует папку, он помечает эту папку как мастер.

22
00:01:42,380 --> 00:01:45,690
Это главная ветка для моего комплекта.

23
00:01:45,690 --> 00:01:48,210
Теперь давайте не будем беспокоиться о ветках и так далее,

24
00:01:48,210 --> 00:01:50,665
мы не будем с этим разбираться в этом курсе.

25
00:01:50,665 --> 00:01:56,240
Мы будем работать только с главной веткой, в этой конкретной специализации.

26
00:01:56,240 --> 00:01:58,500
Так что это будет помечено как мастер.

27
00:01:58,500 --> 00:02:02,060
Теперь это начальная точка нашего репозитория.

28
00:02:03,770 --> 00:02:08,410
Следующая команда, на которую мы собираемся посмотреть, - это статус git.

29
00:02:08,410 --> 00:02:10,510
Если вы введете git status в командной строке,

30
00:02:10,510 --> 00:02:13,740
он сообщит вам текущий статус папки.

31
00:02:13,740 --> 00:02:17,460
Итак, давайте сделаем это в командной строке и посмотрим, что он показывает.

32
00:02:19,470 --> 00:02:23,395
В командной строке введите git status и

33
00:02:23,395 --> 00:02:28,945
прочитайте информацию, которая отображается в окне команд.

34
00:02:28,945 --> 00:02:34,390
Вы видите, что он говорит о мастере ветки, так что это главная ветка, которую мы добавляем.

35
00:02:34,390 --> 00:02:40,690
И он говорит, что неотслеживаемые файлы, а затем показывает index.html красным цветом.

36
00:02:40,690 --> 00:02:43,790
На конкретном компьютере он может использовать разные цвета или

37
00:02:43,790 --> 00:02:49,040
представлять это по-разному, или это то, что он показывает на моем Mac.

38
00:02:49,040 --> 00:02:54,040
Итак, теперь этот файл index.html, который мы только что создали в этой папке,

39
00:02:54,040 --> 00:02:58,100
теперь не был добавлен в наш репозиторий git.

40
00:02:58,100 --> 00:03:01,680
Итак, давайте продолжим и добавим этот файл в репозиторий git.

41
00:03:01,680 --> 00:03:07,510
Поэтому, чтобы сделать это, мы говорим, git add, и вы можете просто сказать точку,

42
00:03:07,510 --> 00:03:12,350
что означает, что все файлы в текущем каталоге будут добавлены к

43
00:03:12,350 --> 00:03:17,680
тому, что называется промежуточной областью моего репозитория git.

44
00:03:17,680 --> 00:03:21,740
Итак, теперь, если я снова напечатаю статус git,

45
00:03:21,740 --> 00:03:27,780
вы увидите, что файл index.html помечен зеленым цветом.

46
00:03:27,780 --> 00:03:34,202
И он говорит, что изменения должны быть зафиксированы там, а затем показывает имя файла, а затем это

47
00:03:34,202 --> 00:03:40,161
означает, что этот файл теперь готов для фиксации в моем репозитории git.

48
00:03:41,647 --> 00:03:46,100
Итак, следующая команда, которую мы видели, была git add.

49
00:03:46,100 --> 00:03:51,190
Используя git add, вы можете добавить файл или папки в эту промежуточную область.

50
00:03:51,190 --> 00:03:57,250
Поэтому, как только вы добавите его в промежуточную область, вы можете зафиксировать этот снимок

51
00:03:57,250 --> 00:04:03,100
состояния нашей папки в наш репозиторий git.

52
00:04:03,100 --> 00:04:06,460
Таким образом, это означает, что когда вы делаете git commit,

53
00:04:08,130 --> 00:04:12,610
то, что эта команда будет делать, это зафиксировать

54
00:04:12,610 --> 00:04:17,250
текущее состояние наших папок в наших репозиториях git.

55
00:04:17,250 --> 00:04:20,380
Таким образом, все файлы, как они существуют на данный момент, как

56
00:04:20,380 --> 00:04:24,720
только они были поставлены с помощью git add, тогда они будут зафиксированы в нашем

57
00:04:24,720 --> 00:04:29,510
репозитории git, когда мы выполняем папку команд git.

58
00:04:29,510 --> 00:04:34,650
Поэтому в этот момент, когда мы выполняем команду git, наше первоначальное

59
00:04:34,650 --> 00:04:40,750
состояние теперь будет изменено на первую фиксацию в репозитории git.

60
00:04:40,750 --> 00:04:42,650
Так что давайте продолжим и сделаем это.

61
00:04:45,470 --> 00:04:51,950
Вернитесь в командную строку, давайте напечатаем git commit.

62
00:04:51,950 --> 00:04:54,888
И тогда мы можем даже добавить сообщение к нашей фиксации.

63
00:04:54,888 --> 00:05:00,010
Поэтому я собираюсь сказать git commit -m «first

64
00:05:00,010 --> 00:05:04,160
commit», потому что это наша фиксация в нашем репозитории git.

65
00:05:04,160 --> 00:05:10,630
Поэтому, когда я это делаю, он говорит, хорошо, 1 файл был добавлен в репозиторий git, и

66
00:05:10,630 --> 00:05:15,300
некоторая другая информация будет введена в окно команд.

67
00:05:15,300 --> 00:05:20,790
Итак, давайте теперь проверим еще раз, git статус, и

68
00:05:20,790 --> 00:05:26,220
теперь вы видите, что он ничего не говорит для фиксации, рабочий каталог чист.

69
00:05:26,220 --> 00:05:31,230
Итак, это означает, что текущее состояние моего рабочего каталога или

70
00:05:31,230 --> 00:05:36,390
рабочей папки было зафиксировано в репозитории git, поэтому

71
00:05:36,390 --> 00:05:39,330
снимок был зафиксирован в моем репозитории git.

72
00:05:39,330 --> 00:05:47,200
Теперь я могу ввести следующую команду под названием git log —oneline

73
00:05:47,200 --> 00:05:53,020
и увидеть, что она показывает там число, восьмизначное число там,

74
00:05:53,020 --> 00:05:57,850
а затем также показывает сообщение, которое мы помещаем в нашу фиксацию, говоря первой фиксацией.

75
00:05:57,850 --> 00:06:03,340
Так что это журнал всех коммитов, которые были помещены в мой репозиторий git.

76
00:06:05,120 --> 00:06:08,900
Итак, возвращаясь к нашей следующей команде git,

77
00:06:08,900 --> 00:06:14,094
мы увидели, что git log - oneline

78
00:06:14,094 --> 00:06:18,540
покажет нам краткий журнал всех коммитов.

79
00:06:18,540 --> 00:06:20,080
Если вы просто вводите git log

80
00:06:21,200 --> 00:06:26,220
, отобразите гораздо более подробную информацию обо всех коммитах.

81
00:06:26,220 --> 00:06:31,344
Но этого достаточно для получения необходимой нам информации.

82
00:06:33,350 --> 00:06:40,248
Давайте вернемся к нашему редактору здесь, в Visual Studio Code,

83
00:06:40,248 --> 00:06:46,141
поэтому я собираюсь добавить больше изменений в мой файл index.html.

84
00:06:54,501 --> 00:06:57,790
Я изменил файл index.html.

85
00:06:57,790 --> 00:07:02,450
Теперь позвольте мне добавить еще одну папку в тестовую папку git, поэтому

86
00:07:02,450 --> 00:07:07,990
я создаю подпапку здесь с именами

87
00:07:07,990 --> 00:07:13,450
шаблонов, и внутри этой папки шаблонов я собираюсь создать другое имя файла, test.html.

88
00:07:13,450 --> 00:07:16,230
Это просто, чтобы показать вам, как git

89
00:07:16,230 --> 00:07:21,120
может фиксировать всю иерархию папок в своем репозитории.

90
00:07:21,120 --> 00:07:26,002
Поэтому с test.html теперь я просто

91
00:07:26,002 --> 00:07:31,173
собираюсь скопировать все из моего index.html

92
00:07:31,173 --> 00:07:36,499
в мой test.html и сохранить изменения.

93
00:07:39,447 --> 00:07:41,484
Возвращаясь к командной строке,

94
00:07:41,484 --> 00:07:46,480
давайте теперь проверим статус нашего репозитория git и этой папки.

95
00:07:46,480 --> 00:07:51,740
Таким образом, введите статус git, показывает, что

96
00:07:51,740 --> 00:07:56,020
html-файл статуса индекса, который мы уже передали ранее в репозиторий

97
00:07:56,020 --> 00:08:00,570
, теперь был изменен, поэтому есть более новая версия файла index.html.

98
00:08:00,570 --> 00:08:03,220
Кроме того, он показывает, что

99
00:08:03,220 --> 00:08:05,530
в этой папке есть некоторые неотслеживаемые файлы, называемые шаблонами.

100
00:08:06,620 --> 00:08:11,794
Давайте добавим все эти изменения к

101
00:08:11,794 --> 00:08:16,114
промежуточной области, так что снова введите git add.

102
00:08:16,114 --> 00:08:21,620
И тогда все эти файлы будут добавлены в промежуточную область.

103
00:08:21,620 --> 00:08:23,940
Опять же, проверяя статус.

104
00:08:23,940 --> 00:08:29,490
Теперь вы увидите изменения, которые были добавлены в промежуточную область.

105
00:08:29,490 --> 00:08:32,850
Таким образом, все эти файлы были добавлены в промежуточную область.

106
00:08:32,850 --> 00:08:36,850
Давайте сделаем еще одну фиксацию, поэтому

107
00:08:36,850 --> 00:08:42,930
я бы сказал git commit -m, второй commit, а

108
00:08:42,930 --> 00:08:47,096
затем проверим журнал.

109
00:08:50,874 --> 00:08:55,246
Если вы проверите журнал, теперь вы увидите, что

110
00:08:55,246 --> 00:08:58,930
в моем репозитории git есть две фиксации, первая и вторая фиксация.

111
00:08:58,930 --> 00:09:03,040
И обратите внимание, что каждому из них дается разное число.

112
00:09:03,040 --> 00:09:07,130
Если вы хотите увидеть их полные данные журнала,

113
00:09:07,130 --> 00:09:12,510
вы можете просто ввести, git log, а затем вы получите больше информации там.

114
00:09:12,510 --> 00:09:15,132
Тогда что бы вас заинтересовало.

115
00:09:15,132 --> 00:09:20,114
Итак, обратите внимание, что фиксация oneline дает только первые

116
00:09:20,114 --> 00:09:24,405
несколько символов моего номера фиксации там.

117
00:09:24,405 --> 00:09:27,028
Этого достаточно для того, чтобы мы могли работать.

118
00:09:29,245 --> 00:09:34,721
Позвольте мне снова вернуться в мою Visual Studio, а затем добавить еще один.

119
00:09:43,885 --> 00:09:47,140
Еще одна строка в моем файле index.html.

120
00:09:47,140 --> 00:09:49,800
Итак, теперь мой файл index.html был изменен.

121
00:09:51,660 --> 00:09:53,170
И давайте сохраним изменения.

122
00:09:55,310 --> 00:09:58,530
Возвращаясь к командной строке, выполнение

123
00:09:59,870 --> 00:10:04,490
статуса git показывает, что файл index.html был изменен.

124
00:10:04,490 --> 00:10:10,650
Итак, давайте добавим это в промежуточную область, а затем сделаем третью фиксацию.

125
00:10:10,650 --> 00:10:15,716
Так что скажем, git add. ,

126
00:10:15,716 --> 00:10:18,720
статус git,

127
00:10:18,720 --> 00:10:22,700
теперь вы видите, что index.html измененная версия была добавлена.

128
00:10:22,700 --> 00:10:27,722
Теперь мы можем сказать git commit.

129
00:10:31,231 --> 00:10:36,825
« третья фиксация» и выполните git log —oneline,

130
00:10:36,825 --> 00:10:43,810
и вы видите, что в нашем репозитории есть три коммита.

131
00:10:43,810 --> 00:10:48,220
Итак, теперь наш репозиторий содержит снимки трех разных точек,

132
00:10:48,220 --> 00:10:51,370
в конце первой фиксации, в конце второй фиксации и

133
00:10:51,370 --> 00:10:53,250
в конце третьей фиксации.

134
00:10:53,250 --> 00:10:56,930
Теперь мы также можем откатить изменения,

135
00:10:56,930 --> 00:11:01,590
мы можем вернуть репозиторий к предыдущей версии.

136
00:11:01,590 --> 00:11:04,780
Мы можем вытащить файл из старого коммита, а

137
00:11:04,780 --> 00:11:09,180
затем заменить существующий каталог из старого коммита.

138
00:11:09,180 --> 00:11:12,370
Итак, давайте посмотрим, как мы можем работать с этими

139
00:11:12,370 --> 00:11:14,120
вещами, изучив еще пару команд.

140
00:11:15,820 --> 00:11:21,450
На этом этапе наш файл index.html находится в текущем состоянии.

141
00:11:21,450 --> 00:11:24,795
Таким образом, вы можете заметить, что он имеет h1 и два ps.

142
00:11:26,530 --> 00:11:29,365
Давайте теперь посмотрим на следующую команду git.

143
00:11:30,815 --> 00:11:36,185
Следующая команда git, о которой мы собираемся узнать, - это проверка git.

144
00:11:36,185 --> 00:11:40,300
Таким образом, эта команда checkout позволяет нам проверить файл

145
00:11:40,300 --> 00:11:44,040
из предыдущей фиксации в нашем репозитории git.

146
00:11:44,040 --> 00:11:48,050
Поэтому, если нам не нравится текущий файл, который у нас есть в нашей папке, и

147
00:11:48,050 --> 00:11:51,160
мы хотим вернуться к вашей предыдущей версии файла,

148
00:11:51,160 --> 00:11:55,090
мы всегда можем проверить файл из предыдущей фиксации или

149
00:11:55,090 --> 00:12:00,230
из текущей фиксации, а затем продолжить работу с этим файлом.

150
00:12:00,230 --> 00:12:07,431
Итак, давайте воспользуемся этим и посмотрим некоторые дальнейшие изменения в нашем репозитории git.

151
00:12:09,228 --> 00:12:15,366
Возвращаясь к нашей командной строке, мы помним, что между вторым и

152
00:12:15,366 --> 00:12:20,235
третьим фиксацией я внес изменения в свой файл index.html.

153
00:12:20,235 --> 00:12:25,735
Предположим, я хочу вернуться к файлу index.html из моей второй фиксации.

154
00:12:25,735 --> 00:12:29,885
Итак, я могу просто сказать,

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

156
00:12:34,039 --> 00:12:41,035
Таким образом, это фиксация идентифицирует номер, который идентифицирует конкретную фиксацию,

157
00:12:41,035 --> 00:12:46,971
а затем я могу сказать index.html, и вы заметили бы,

158
00:12:46,971 --> 00:12:53,662
что этот старый файл теперь будет выписан в мой текущий рабочий каталог.

159
00:12:55,845 --> 00:12:58,018
Перейдя к моему

160
00:12:58,018 --> 00:13:03,811
коду Visual Studio, вы теперь заметите, что мой файл index.html вернулся к предыдущей работе, поэтому

161
00:13:03,811 --> 00:13:08,580
изменение, которое я сделал до третьей фиксации, теперь исчезло.

162
00:13:08,580 --> 00:13:16,690
Таким образом, мой файл index.html был восстановлен в своем состоянии в конце второй фиксации.

163
00:13:18,920 --> 00:13:23,042
Теперь, в командной строке, если я попробую статус git,

164
00:13:23,042 --> 00:13:28,403
вы заметите, что этот файл index.html, который был возвращен

165
00:13:28,403 --> 00:13:35,470
к тому, что он был в конце второй фиксации, теперь он уже был поставлен.

166
00:13:35,470 --> 00:13:40,930
Поэтому, используя эту проверку git, мы вытащим старую версию файла,

167
00:13:40,930 --> 00:13:44,390
а затем заменим то, что находится в текущем каталоге, а

168
00:13:44,390 --> 00:13:47,670
затем он также проверит его в промежуточную область.

169
00:13:48,970 --> 00:13:53,400
Поэтому теперь, если я это сделаю, а затем я понимаю, что это то, что я хочу,

170
00:13:53,400 --> 00:13:56,450
я могу просто сделать еще одну фиксацию на этом этапе.

171
00:13:56,450 --> 00:14:02,445
И тогда этот файл может быть зафиксирован как четвертая фиксация.

172
00:14:02,445 --> 00:14:07,812
Но предположим, что мне это не нравится, я хочу

173
00:14:07,812 --> 00:14:12,641
вернуться к файлу index.html в конце

174
00:14:12,641 --> 00:14:18,291
третьей фиксации, тогда все, что я могу сделать, это сказать git reset,

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

176
00:14:28,236 --> 00:14:33,356
Итак, на данный момент происходит то, что index.html,

177
00:14:33,356 --> 00:14:38,796
измененная версия, которую я проверил, все еще существует, но

178
00:14:38,796 --> 00:14:43,397
этот файл не был поставлен из промежуточной области.

179
00:14:43,397 --> 00:14:49,803
Если вы вернетесь и посмотрите на index.html в своем редакторе,

180
00:14:49,803 --> 00:14:56,680
он все равно покажет состояние в конце второй фиксации.

181
00:14:56,680 --> 00:15:01,250
Потому что мы вытащили файл с помощью проверки для этого.

182
00:15:01,250 --> 00:15:06,900
Теперь, если вы хотите вернуть его обратно к тому, что было в конце третьей фиксации,

183
00:15:06,900 --> 00:15:11,956
тогда мы делаем еще одну проверку из третьей фиксации, идущей в наше

184
00:15:11,956 --> 00:15:18,900
командное окно, введите статус git, и

185
00:15:18,900 --> 00:15:23,920
вы заметите, что index.html помечен как измененный.

186
00:15:23,920 --> 00:15:28,870
Но это также показывает это конкретное утверждение здесь.

187
00:15:28,870 --> 00:15:32,270
Он говорит, что git checkout - и

188
00:15:32,270 --> 00:15:35,310
имя файла, чтобы отменить изменения в рабочих каталогах.

189
00:15:35,310 --> 00:15:39,270
Таким образом, вы можете отменить изменения, внесенные в конкретный

190
00:15:39,270 --> 00:15:43,095
файл, соответствующий предыдущему комментарию.

191
00:15:43,095 --> 00:15:46,875
Поэтому позвольте мне просто восстановить этот index.html обратно к тому, что он был в конце

192
00:15:46,875 --> 00:15:48,205
третьей фиксации.

193
00:15:48,205 --> 00:15:52,455
Поэтому для этого я мог бы просто сказать git, checkout,

194
00:15:52,455 --> 00:15:58,540
- index.html, а затем,

195
00:15:58,540 --> 00:16:05,480
если я делаю статус git, он показывает, что мой каталог чист.

196
00:16:05,480 --> 00:16:08,130
И в основном мой каталог был восстановлен

197
00:16:08,130 --> 00:16:10,520
в состояние в конце третьей фиксации.

198
00:16:12,370 --> 00:16:17,580
Перейдя к файлу в моем Virtual Studio Code, я вижу, что

199
00:16:17,580 --> 00:16:21,060
их файл был восстановлен обратно к тому, что он был в конце третьего cap.

200
00:16:21,060 --> 00:16:24,740
Таким образом, это один из способов, который вы можете, если вы внесли изменения

201
00:16:24,740 --> 00:16:27,740
в свой файл после фиксации, и вы хотите просто отменить эти изменения,

202
00:16:27,740 --> 00:16:31,810
вы можете просто проверить файл из последней фиксации, а затем все ваши

203
00:16:31,810 --> 00:16:36,220
изменения, которые вы сделали после последней фиксации, будут отброшены на месте.

204
00:16:36,220 --> 00:16:40,960
Таким образом, это некоторые основные команды, которые очень полезны для

205
00:16:40,960 --> 00:16:44,510
вас, когда вы проходите курсы в этой специализации,

206
00:16:44,510 --> 00:16:49,160
потому что вы можете совершить в конце каждого упражнения.

207
00:16:49,160 --> 00:16:56,220
И по мере продвижения вперед вы все равно будете иметь ориентированное представление

208
00:16:56,220 --> 00:17:01,790
о состоянии вашей папки в конце предыдущего упражнения.

209
00:17:01,790 --> 00:17:06,180
Таким образом, если вы выполняете новое упражнение, и вы обнаружили, что вы

210
00:17:06,180 --> 00:17:10,320
допустили ошибки, и вы хотите вернуться к предыдущей фиксации, у

211
00:17:10,320 --> 00:17:18,000
вас всегда есть способ сделать это, используя команды, которые мы только что позволили.

212
00:17:18,000 --> 00:17:24,430
Таким образом, с этим базовым пониманием этих нескольких команд git

213
00:17:24,430 --> 00:17:29,260
вы сможете продолжить понимание и

214
00:17:29,260 --> 00:17:33,570
использование git на курсах этой специализации.

215
00:17:35,560 --> 00:17:41,685
Итак, теперь мы рассмотрели сброс git для определенного файла или git reset в целом.

216
00:17:41,685 --> 00:17:47,970
Если вы просто напечатаете git reset, он вернет вас к последней фиксации.

217
00:17:47,970 --> 00:17:50,680
Таким образом, он сбросит промежуточную область до последней фиксации,

218
00:17:50,680 --> 00:17:55,270
не нарушая изменений, которые вы сделали в вашем рабочем каталоге.

219
00:17:55,270 --> 00:17:58,390
Поэтому после сброса вы можете проверить

220
00:17:58,390 --> 00:18:02,140
предыдущую версию файла, который вы зафиксировали в предыдущей фиксации.

221
00:18:02,140 --> 00:18:07,380
Таким образом, на этой неделе вы можете восстановить свою папку обратно в том месте, где вы были в

222
00:18:07,380 --> 00:18:10,450
начальной точке предыдущей фиксации.

223
00:18:10,450 --> 00:18:15,300
Так что иногда, когда вы проходите через упражнение, и вы понимаете, что пропустили сигнал.

224
00:18:15,300 --> 00:18:20,174
Всегда есть способ вернуться к предыдущей версии.

225
00:18:20,174 --> 00:18:25,027
Поэтому с этими командами я думаю, что вы все готовы

226
00:18:25,027 --> 00:18:28,849
использовать git на курсах этой специализации.

227
00:18:31,070 --> 00:18:34,395
Итак, в конце этого упражнения вы сделали это?

228
00:18:34,395 --> 00:18:37,459
[ МУЗЫКА]