Как работать с (под) переименованием каталогов в Git?
Я смотрю на использование Git для поддержки VCS локального разработчика (это для междисциплинарной разработки).
Предыдущая практика заключалась в том, что каталог верхнего уровня переименовывался (и сохранялась zip-копия) для каждой пробной версии. Это было достаточно эффективно для команд из 1-2 человек. Beyond Compare был использован между версиями.
Однако быстрая попытка применения Git к методу показывает, что он "думает", что файлы удалены и создан новый, а не просто находится на новом пути.
Таким образом, мы имеем
\GIT-Dir
\.git
\Master-with-updating-version-name1
\ProjectName
\Source
files.etc
становится
\GIT-Dir
\.git
\Master-with-updating-version-name2
\ProjectName
\Source
files.etc
а потом
\GIT-Dir
\.git
\Master-with-updating-version-name3
\ProjectName
\Source
files.etc
Учитывая, что мне нужно будет сохранить старый метод во время перехода, какие варианты?
a / Как заставить Git понять, что это просто обновление пути?
б / как убедиться, что файлы нижнего уровня правильно отслеживаются и обрабатываются?
Я на Windows, использую GitGui 0.13 и git 1.7.4.msysgit.0, и у меня установлен GitExtensions 2.21
2 ответа
Git не отслеживает переименования, он ретроспективно определяет их как часть log
а также show
команды. Вам никогда не нужно явно переименовывать / перемещать файл или каталог, используя команды git.
Переименования определяются по пороговому значению разницы: если было добавление и удаление файла и содержимое достаточно схоже, то git будет считать его переименованием / перемещением.
Если вы переименуете свой каталог вне git, то выполните git status
, вы увидите, что он поднял их как удаление. Теперь добавьте их обоих в свой индекс (git add -A
будет делать это), теперь вы должны увидеть, что он видит их как переименование.
В командной строке вы бы переименовали файл или каталог с помощью git mv
, Ваш GUI должен иметь возможность для этого.