Свяжите пустой git commit с файлами - PullRequest
7 голосов
/ 08 сентября 2011

Я знаю, что вы можете использовать

git commit --allow-empty

поместить коммит без фактических изменений файла в репозиторий.

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

git log -- <filename>

отобразит коммит, но я не могу найти способ сделать это.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 08 сентября 2011

С git log --help:

[--] <path>...
    Show only commits that affect any of the specified paths.

Вы хотите, чтобы git log <path>... показывал коммит, который не влияет на указанные пути.Этого не произойдет.

Однако вы можете поместить имена файлов в сообщение фиксации, а затем использовать git log --grep=<filename>.

Возможно, вы не хотите, чтобы это было в сообщении фиксации.?Затем поместите это в примечания к коммиту: git notes add -m <filename>.Возможно, вам придется написать небольшой скрипт для grep для заметок, но git-сантехника должна сделать это довольно просто.

5 голосов
/ 12 июля 2012

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

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

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