Пользовательские сообщения фиксации для каждого отдельного файла PhpStorm + GitHub

Это мой первый вопрос на StackOverflow, поэтому каждый совет будет очень ценен.

Я работаю с PhpStorm в качестве IDE, а мы с партнерами используем GitHub в качестве системы контроля версий.

Каждый раз, когда вы делаете фиксацию изменений (например, push), Git позволяет вам добавлять комментарии к файлам, которые вы изменяете.

И мы подошли к проблеме

Как вы можете видеть на этом изображении, я изменил 3 файла (1 файл класса php и 2 шаблона веток):

изображение

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

Единственный способ сделать это — зафиксировать каждый файл отдельно, но мне нужен более быстрый способ.


person Lotan    schedule 13.05.2017    source источник
comment
Вы не можете просто снять галочки с флажков? (не пользователь phpstorm, просто догадываюсь... поэтому это не ответ)   -  person tereško    schedule 13.05.2017
comment
вы вносите изменение, если изменение затрагивает несколько файлов, вы должны отразить это в своем комментарии.   -  person meda    schedule 13.05.2017
comment
@meda, это было бы очень ограниченным представлением о контроле версий. Кроме того, он не хочет фиксировать все три изменения, потому что каждый из этих файлов, вероятно, был изменен по другой причине.   -  person tereško    schedule 13.05.2017
comment
Вы не фиксируете файлы, вы делаете снимки всего вашего рабочего дерева, поэтому, когда git заставляет вас писать 1 сообщение фиксации для всех файлов, которые вы фиксируете, это не просто глупо, но 1 фиксация равна 1 сообщению фиксации. . Если этот коммит содержит 1000 файлов, этот коммит по-прежнему будет иметь 1 сообщение коммита. Если вы хотите иметь 1 сообщение фиксации для каждого файла, вам также придется сделать 1 фиксацию для каждого файла. Вам нужен более быстрый способ, но на самом деле... почему? Почему вы хотите зафиксировать каждый файл отдельно?   -  person Lasse V. Karlsen    schedule 13.05.2017
comment
@LasseV.Karlsen Я неправильно выражаюсь, или вы меня не понимаете. Я не хочу фиксировать каждый файл отдельно, я не хочу добавлять в каждый файл разные сообщения фиксации. Потому что изменения в каждом файле могут быть разными.   -  person Lotan    schedule 13.05.2017
comment
Затем вы просто пишете: file1: Change A, file2: Change B: file3: Change C и так далее. Я почти уверен, что это не то, чего вы хотите, но это все, что вы можете сделать.   -  person Lasse V. Karlsen    schedule 13.05.2017
comment
@LasseV.Karlsen это именно то, что я делаю, но мне это кажется грязным   -  person Lotan    schedule 13.05.2017
comment
Да, вы правы, это действительно кажется грязным, но это потому, что вы смешиваете несвязанные изменения. Это самая грязная часть. Если вы исправили ошибку X, это то, что должно быть указано в вашем сообщении о коммите, а количество файлов, прикрепленных к фиксации, является подробной информацией о вашем исправлении. Если, с другой стороны, ваша единственная фиксация содержит 1 несвязанное изменение в файле, то вы в основном не используете право управления исходным кодом. Исправьте одну вещь за раз, зафиксируйте, промойте, повторите.   -  person Lasse V. Karlsen    schedule 13.05.2017


Ответы (2)


Git не позволяет создавать разные сообщения фиксации для каждого файла в фиксации. См., например. эта ветка или это

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

person Dmitriy Smirnov    schedule 13.05.2017
comment
Понятно: философия Git заключается в отслеживании «контента», а не «файлов». спасибо за ссылки Дмитрий - person Lotan; 13.05.2017

В PhpStorm нет более быстрого способа. Сообщение о фиксации касается изменения, которое вы фиксируете, которое не зависит от файла. Если вы хотите иметь разные сообщения фиксации для каждого файла, вам нужно разделить их на несколько коммитов. Единственный потенциальный способ сделать это быстрее — не использовать PhpStorm, а сделать это из командной строки (при условии, что у вас установлен git).

Сначала запустите git status, чтобы убедиться, что еще ничего не подготовлено для фиксации. Если есть, запустите git reset HEAD path\to\file, чтобы отключить файлы.

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

git add src\Controller\UserController.php
git commit -m "Commit message for UserController.php"

git add src\View\templates
git commit -m "Commit message for home.twig and publicProfile.twig"

git add .
git commit -m "Commit message for remaining files, like in web\assets\js"

git push

git push должен отправить эти 3 коммита на Github для вас.

person rickdenhaan    schedule 13.05.2017
comment
Как вы сказали, это способ, но далеко не самый быстрый: ( - person Lotan; 13.05.2017