Как работать с (под) переименованием каталогов в Git? - PullRequest
4 голосов
/ 05 мая 2011

Я смотрю на использование 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 ]

3 голосов
/ 05 мая 2011

Git не отслеживает переименования, он ретроспективно определяет их как часть команд log и show. Вам никогда не нужно явно переименовывать / перемещать файл или каталог с помощью команд git.

Переименования определяются по пороговому значению разницы: если было добавление и удаление файла и содержимое достаточно схоже, то git будет считать его переименованием / перемещением.

Если вы переименуете свой каталог вне git, а затем выполните git status, и вы увидите, что он поднял их как удаление. Теперь добавьте их обоих в свой индекс (git add -A сделает это), теперь вы должны увидеть, что он видит их как переименование.

2 голосов
/ 05 мая 2011

В командной строке вы переименуете файл или каталог с помощью git mv. Ваш GUI должен иметь опцию для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...