Еще один важный практический вопрос при работе с Git - это операции с файлами.

В частности, это операции удаления и переименования файлов. В системе Git имеются специальные команды, которые очень похожи на консольные команды

1
rm
и
1
mv
в Linux/Mac OS. Но для Git они выглядят несколько иначе:
1
git rm
- для удаления файлов и
1
git mv
- для переименования файлов. Ниже я рассмотрю обе эти комадны более подробно.

Команда git rm

Для удаления файлов в системе Git, как уже упоминалось выше, имеется специальная команда

1
git rm
. Ее отличие от обычной консольной команды
1
rm
(в том же Linux) заключается в особенности самой системы Git.

Как хорошо известно, в системе Git файл может одновременно существовать в трех ипостасях: в области “Working Directory”, в области “Staging Area”, в области “Repository”. Удаление файла из области “Working Directory” не приведет к его удалению из областей “Staging Area” и “Repository”.

Поэтому, чтобы удалить файл, нужно (в идеале) выполнить три команды подряд для удаления файла из Рабочей области “Working Directory”, затем из области индекса “Staging Area” и потом из области репозитория “Repository”:

$ rm index.html
$ git add .
$ git commit -m 'Delete file index.html'

Команда

1
git rm
является ни чем иным, как “вшитым” в Git сокращением двух первых команд:

$ rm index.html
$ git add .

Сделано это всего лишь для удобства пользования системой Git. Давайте на примере посмотрим работу команды

1
git rm
. Предположим, что имеется файл
1
index.html
, который проиндексирован и зафиксирован.

Удалим его командой

1
git rm
:

Команда git rm - удаление файлов в Git

Видим, что файл

1
index.html
был сразу удален из двух областей: рабочего каталога “Working Directory” и области индексации “Staging Area”. Но в репозитории файл все же остался, о чем говорит вывод команды
1
git status
.

Любой последующий commit зафиксирует удаление этого файла:

Фиксация удаления файла командой git rm

Команда git rm -cached

У команды

1
git rm
имеется пара полезных ключей, одним из которых является ключ
1
--cached
. Задача этого ключа - позволить команде
1
git rm
удалить файл из области индексирования “Staging Area”, но при этом оставить его в области рабочего проекта “Working Directory”. Давайте рассмотрим пример, когда создан файл
1
second.html
и произведена его индексация (но не фиксация):

Созданный файл second.html

Удалим его командой

1
git rm --cached
:

Команда git rm -cached

Отлично! Видим, что произошло удаление файла

1
second.html
. Кроме того, команда
1
git status
показывает, что в рабочей области “Working Directory” имеется неотслеживаемый (untracked) файл по имени
1
second.html
.

Команда git rm -f

В предыдущем разделе я рассмотрел вариант, когда созданный и проиндексированный файл удаляется из области индексирования “Staging Area”, но остается в области “Working Directory”. Выполняется это с помощью команды

1
git rm --cached
.

Логическим продолжением этой команды является та же самая команда

1
git rm
, но с ключом
1
-f
-
1
git rm -f
. Такая команда удаляет проиндексированный (но еще не зафиксированный) файл как из области “Staging Area”, так и из области “Working Directory”.

Давайте рассмотрим на примере созданного и проиндексированного файла

1
third.html
его удаление с помощью команды
1
git rm -f
:

Созданный файл third.html

Команда git rm -f

Файл

1
third.html
удален как из области “Staging Area”, так и из области “Working Directory”. В итоге можно сказать, что между командой
1
git rm -f
и командой
1
git rm
практически нет никакой разницы.

Команда git mv - перемещение или переименование файлов

В системе Git имеется “своя” команда для перемещения или переименования файлов. Слово “своя” здесь не даром взято в кавычки - аналогия с командой

1
git rm
полная. Команда
1
git mv
перемещает или переименовывает файлы, автоматически “уведомляя” об этих событиях область “Staging Area”:

Команда git mv - перемещение файла в Git

Остается только зафиксировать эти изменения любым коммитом:

$ git commit -m 'Move index.html to papka'
  [master 868d428] Move index.html to papka
   1 file changed, 0 insertions(+), 0 deletions(-)
   rename index.html => papka/index.html (100%)

Переименуем файл

1
index.html
с помощью команды
1
git mv
:

Команда git mv - переименование файла в Git

Вот и все несложные операции по перемещению\переименованию или удалению файлов с помощью команд

1
git rm
и
1
git mv
, под всевидящим оком Git.


MongoDB - создание документа

![MongoDB]({{site.url}}/images/uploads/2017/05/mongodb-logo.jpg "MongoDB")Приступили к самому основному - операциям создания, чтения, изм...… Continue reading

MongoDB - документы

Published on May 23, 2017