2013-07-13 3 views
2

Я пытаюсь создать образец проекта, чтобы переименовать файл с помощью Eclipse. Во-первых, я сделал фиксацию и нажал на GitHub. Файл был Samplemain.java. Если я переименую этот файл в SampleMain.java, и если я попытаюсь зафиксировать переименованный файл с помощью TortoiseGit, я не могу зафиксировать его. Вместо этого он показывает ошибку с небольшим диалогом.Как мне сделать переименованный файл с учетом регистра с помощью TortoiseGit?

Пожалуйста, дайте мне знать решения для переименования файлов с учетом регистра в Git. Я использую Windows, диалоговое окно с ошибкой показано ниже. enter image description here

+0

Можете ли вы добавить скриншот из диалогового окна ошибки? Кроме того, это важно, вы используете Windows, Linux или Mac? Windows обрабатывает пути к файлу без учета регистра, в то время как Linux и Mac чувствительны к регистру в отношении путей. –

+0

Привет, кекс, я использую окна, вы можете найти выше диалоговое окно с ошибкой. –

+0

Кроме того, теперь у новых версий TortoiseGit есть эта проблема - пока вы используете команду переименования Git с самого начала, она должна работать. – Venryx

ответ

4

Это проблема с TortoiseGit, а не с Git. Если вы выполняете использование командной строки, он будет работать, я проверил его сейчас. Обратите внимание, что переименование по-прежнему занимает 2 git mv команд, но только один git commit, как и должно быть.

Другой альтернативой является переименование файла на GitHub: при редактировании файла в уведомлении GitHub вверху вы можете изменить имя. После этого вы сможете вытащить его.

+0

Привет, Янош. Во-первых, большое спасибо вам. вы сказали то же самое, о чем я думаю. Может быть переименовано не работает в TortoiseGit. Можно ли применить переименование ко всем зависимым файлам. Если я действительно переименую имя файла в GitHub? Если это поможет мне, было бы здорово. То же самое. Если я делаю фиксацию и нажимаю, используя egit, он отлично работает. –

+0

Привет, Янош, не могли бы вы сделать положительный голос за мой вопрос.Потому что я новичок в StackExchange, также у меня есть счет меньше 15. –

+0

Привет, переименование на GitHub должно быть последним средством. GitHub не знает, что это за проект, и поэтому он не может переименовывать зависимые файлы. Это будет рефакторинг, и только ваш инструмент сборки может сделать это правильно. – janos

0

Двухступенчатое переименование ... назовите его чем-то вроде «z.tmp», а затем обратно к названию, которое вы действительно хотите.

Я знаю, с Subversion Я должен совершать двухэтапные переименования, но с Mercurial я этого не делаю.

Не уверен, нуждается ли Git или нет.

+0

Привет, Джереми, спасибо за ваше время. Я знаю, что для svn потребуется 2-х шаговый процесс. Пожалуйста, дайте мне знать только в git. –

+0

Если вы используете «Git rename» в tortoisegit, с самого начала это единственная операция, которую вам нужно сделать. (в последних версиях, так как они исправили это) Однако, если вы переименовали его в Windows Explorer, вам нужно сделать двухэтапное переименование, как вы предлагаете. (или какое-то другое решение - см. мой другой ответ) – Venryx

3

Запустить следующую команду в командной строке Windows (консоль MINGW). Он должен исправить проблему обнаружения случая.

git config core.ignorecase false 
+0

это ответ на ответ, точка на –

+0

Это только половина решает его - при использовании простых переименований проводников в любом случае. Когда это разрешено и вы переименовываете Explorer, он замечает, что есть новый файл * с новым корпусом - не то, что старый был переименован в новый корпус. Таким образом, у репо есть обе версии! Что появляется в Github и т. П., Но не в проводнике Windows. В этом случае вы можете исправить это, переименовав его в 'name_', совершив, затем переименовав его и совершив. (вы также можете сделать это для родительской папки, для применения для всех потомков, однако, вы можете испортить историю файлов для других файлов) – Venryx

0

Там есть утилита сделал для этого, по-видимому: https://github.com/tawman/git-unite

Я не был в состоянии попробовать себя еще, поскольку автор не дает окончательных исполняемые файлы, и у меня была проблема, когда пытаясь запустить скрипт сборки. Но это похоже на полезность, которая облегчит эту проблему.

Он ищет несоответствия имен между репо и папками и обновляет репо, чтобы соответствовать папке, позволяя затем совершать транзакции только с одной версией файлов. Поэтому просто измените имена в проводнике Windows на то, что вы хотите, а затем запустите утилиту, я полагаю. (возможно, за ним следует фиксация - не уверен)

 Смежные вопросы

  • Нет связанных вопросов^_^