2014-12-31 3 views
0

У меня есть серьезная проблема: грубо два раза в день, git неправильно совершает старше версия файла, который имеет более современные модификации во время фиксации.Почему Git выполняет старую версию файла?

Workflow жука:

  • Example.php изменяется непрерывно в течение трех часов.
  • В 17:42 файл зафиксирован и отправлен в SHA 200a5a3.
  • В 18:22, при рассмотрении запроса на извлечение, я понимаю, что файл был предыдущей (никогда не совершенной) версией, закодированной [согласно PHPStorm] в 15:34, один час 8 минут до Файл был совершено.
  • Файл рабочей копии верен, а его временная метка последней модификации 2014-12-30 17:04, за 38 минут до фиксации.

Как можно git «запомнить», что такое файл в 3:30, когда я не совершал изменений до 5:42, так или иначе? Разве он не знает только о версии 5:04?

Но что еще более важно, почему это происходит и как я могу остановить его?

+0

Каковы команды 'git', которые вы выпустили? У вас есть крючки 'git'? 'crontab' записи? –

+0

Я всегда использовал CLI, но для этого проекта я впервые использую GUI SourceTree. –

+0

Вы 'git добавили' файл в 15:34, а затем запустили' git commit' в 17:42? –

ответ

1

PHPStorm (и все семейство IDE Intellij) любит делать фанки с контролем источника, чтобы нормализовать интерфейс управления источником для пользователя (так что управление версиями выглядит одинаково, независимо от того, используете ли вы Git, Mercurial или Subversion).

По этой причине я никогда не использую свою IDE для выполнения своих поручений (это, и потому что PHPStorm не поддерживает подписанные PGP коммиты с git commit -S).

В какой-то момент PHPStorm вызывает git add <file>, и по какой-то неизвестной причине он не может повторить его перед совершением. Таким образом, старые индексы добавляются в индекс (и затем фиксируются), пока все еще остаются изменения в файле в рабочем каталоге.

По этой причине я предлагаю вам не полагаться на PHPStorm для управления исходным кодом и всегда использовать CLI.

+0

подтверждено как проблема. –

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