Skip to content

Latest commit

 

History

History
101 lines (77 loc) · 4.73 KB

renaming-files.md

File metadata and controls

101 lines (77 loc) · 4.73 KB

Переименование файлов

Разберем на примере, как Git обрабатывает переименования файлов.

  1. Создайте файл README.md и создайте коммит.
  2. Измените название файла на любое другое и проверьте статус:
На ветке master
Изменения, которые не в индексе для коммита:
  (используйте «git add/rm <файл>…», чтобы добавить или удалить файл из индекса)
  (используйте «git restore <файл>…», чтобы отменить изменения в рабочем каталоге)
        удалено:       README.md

Неотслеживаемые файлы:
  (используйте «git add <файл>…», чтобы добавить в то, что будет включено в коммит)
        INFO.md

нет изменений добавленных для коммита
(используйте «git add» и/или «git commit -a»)

Git думает, что мы удалили файл README.md и создали файл INFO.md, хотя мы просто переименовали его.

  1. Добавим изменений в индекс.
На ветке master
Изменения, которые будут включены в коммит:
  (используйте «git restore --staged <файл>…», чтобы убрать из индекса)
        переименовано: README.md -> INFO.md

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

  1. Проверьте изменения в индексе (git diff --staged):
diff --git a/README.md b/INFO.md
similarity index 100%
rename from README.md
rename to INFO.md

Строки “rename from README.md” и “rename to INFO.md” говорят о том, что файл был переименован.

  1. Измените содержимое файла, а затем проверьте статус и дифф:
На ветке master
Изменения, которые будут включены в коммит:
  (используйте «git restore --staged <файл>…», чтобы убрать из индекса)
        переименовано: README.md -> INFO.md

Изменения, которые не в индексе для коммита:
  (используйте «git add <файл>…», чтобы добавить файл в индекс)
  (используйте «git restore <файл>…», чтобы отменить изменения в рабочем каталоге)
        изменено:      INFO.md
diff --git a/INFO.md b/INFO.md
index e6c0014..6345b73 100644
--- a/INFO.md
+++ b/INFO.md
@@ -1,3 +1,5 @@
 # To-Do List
 
 Простое приложение для ведения списка дел.
+
+Более подробное описание...
  1. Добавьте изменения в индекс и снова посмотрите изменения в нем (git diff --staged):
diff --git a/README.md b/INFO.md
similarity index 64%
rename from README.md
rename to INFO.md
index e6c0014..6345b73 100644
--- a/README.md
+++ b/INFO.md
@@ -1,3 +1,5 @@
 # To-Do List
 
 Простое приложение для ведения списка дел.
+
+Более подробное описание...

Обратите внимание на строку “similarity index 64%”. Несмотря на изменения в файле, Git все равно смог определить, что файл был переименован.

  1. Создайте коммит (git commit).
  2. Просмотрите изменения в коммите с помощью команды git show.

Резюме

  • Git рассматривает переименование как удаление файла и создание нового
  • При добавлении файлов в индекс Git умеет отслеживать переименования
  • Git отслеживает переименование, даже если файл был немного изменен
  • При просмотре изменений с помощью команд git diff --staged и git show, можно увидеть, что файл был переименован

← Отслеживаемые и неотслеживаемые файлы | Ветки →