Предыдущий ролик Следующий ролик  

Видео урок: Удаление файлов

Git: обучение основам

В этом ролике мы изучим, как удалять файлы и отслеживать эти удаления при помощи Git. Чтобы сделать это, давайте создадим несколько файлов, которые мы можем выбросить. Мы оставим первый, второй и третий файлы, давайте создадим несколько новых, и давайте их обозначим как файлы для удаления. Сохраним этот файл как file_to_delete1.txt, а затем просто нажмем Save As, сделаем file_to_delete2. Все закрываем.

У нас есть два файла. Я собираюсь добавить их в репозиторий. Если сейчас я наберу git status, они будут показаны как неотслеживаемые файлы. Итак, если я их удалю, то они так и останутся неотслеживаемыми файлами, верно? Когда мы говорили об удалении файлов, мы говорили об их удалении из репозитория. Мы говорим об отслеживаемых файлах. Во-первых, нам нужно добавить наши файлы в репозиторий, а затем мы можем поговорить об их удалении. Итак, давайте сперва напишем git add, и мы добавим все, что находится в нашей рабочей директории. А теперь, если мы напишем git status, мы увидим, что эти файл можно коммитить, пишем git commit с сообщением, которое будет звучать как 'red shirt'.

Это как красные рубашки в Star Trek. Мы добавляем их только для одной цели, для возможности их удалить. Теперь если мы напишем git status, мы увидим, что коммитить нечего, все находится в репозитории, включая те два файла, что мы собираемся удалить. Теперь, мне нужны два файла, потому что есть два различных способа удалять файлы, и мы их рассмотрим. Один из способов заключается в том, что мы заходим сюда, берем file_to_delete1, просто тащим его вниз в мусор, выбрасываем его, вот и все! Теперь, если мы напишем git status, что Git скажет нам об этом файле? Он смотрит в репозиторий и говорит - У меня есть файл, который я отслеживал, и он называется file_to_delete1.txt.

Я смотрю, что у вас есть в рабочей директории, а этого файла здесь нет. И он говорит вам, что файл был удален. теперь, если мы хотим удалить этот файл, мы говорим git add file_to_delete. Он смотрит в директорию и видит 2, а нам нужен file_to_delete1.txt. Мы пишем git add, и Git нам ничего не говорит. Давайте напишем git status снова, и посмотрим, что будет. Ничего не изменилось, он до сих пор находится в списке Changes, не находящихся в буфере для коммита. Это потому что удаление - это не то же самое, что добавление, мы пишем add, независимо от того, добавляем ли мы файл или добавляем изменения.

С удалением же нам нужно сделать что-то другое, и здесь он говорит нам об этом. Он говорит add/rm, либо добавьте изменения, либо используйте rm, чтобы обновить то, что было закоммичено. Итак, rm обозначает remove, а также это сокращение в Unix для удаления. Итак, если мы хотим удалить этот файл, нужно написать git rm files_to_delete, и мы не можем использовать автозаполнение, потому что тогда будет выбран тот, что находится в директории. Мы должны все набрать сами, или использовать автозаполнение, а затем сделать редактуру, git remove file_to_delete1.txt. Теперь мы нажимаем Return.

Он говорит - хорошо, я удалю это. Теперь пишем git status. И Git говорит нам, что изменения были закоммичены. Все находится в нашем буфере. Теперь file_to_delete1.txt находится в наших изменениях, которые должны быть закоммичены. Мы делаем обычный коммит, git commit с сообщением Deleted first red shirt file. Итак, первый файл удален. Обратите внимание, что он говорит нам про Delete mode, касательно того, что было удалено, что было сделано одно удаление, теперь git status.

Мы видим, что все чисто, пишем git log, и нам говорят, что первый файл "red shirt" был удален. Вот это и есть первый способ удаления файлов. Мы просто заходим в файловую систему и удаляем файл вручную, а затем говорим Git удалить этот файл. Точно так же, как мы делали изменения по добавлению, мы делаем изменения по удалению. Более просто все же сделать полное удаление из Git, сказать git remove file_to_delete2.txt. Теперь автозаполнение работает. Оно находит файл. Когда я нажимал Return, он делал то же самое, он удалил файл из текущей директории.

Но было одно легкое различие, которое заключалось в том, что файл полностью был стерт. Использовался Unix remove, а не удаление через корзину. В моей корзине есть file_to_delete1, поскольку я его сюда перетащил, file2 же не находится в корзине, он просто полностью исчез. В этом и есть разница, если вы хотите что-то оставить, если вы хотите подстраховаться и что-то оставить в корзине, вы можете сделать это. Конечно, это находится в нашем репозитории, так что у нас есть сохраненная версия. Если нам когда-нибудь понадобится сохраненная версия, мы можем использовать эту.

Давайте напишем git status, и посмотрим что Git нам скажет. Файл находится в буфере. Так что одним махом мы устранили файл и добавили его в буфер, тогда как в тот раз был двуэтапный процесс. В тот раз мы отправили файл в корзину, а затем использовали remove, чтобы отправить его в буфер. А теперь довайте закоммитим этот последний файл, пишем git commit -m и "Removed second red shirt file". И вот два файла, которые должны были быть удалены, удалены, и мы изучили два способа, чтобы сделать это.

Первый заключается в том, чтобы удалить файл из рабочей директории, в данном случае в корзину, а затем мы говорим об этом Git, а во втором случае мы говорим Git сделать для нас удаление и добавить изменение в буфер одновременно.