MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Возможно ли подменить дату коммита на гитхаб"
Answer 1188760
Дата коммита, отображаемая в интерфейсе Github, это именно дата создания коммита в git, а не дата отправки его на сервер. Она действительно может быть любой, в зависимости от локального времени (даже раньше предыдущего коммита!). То есть про "подменить" тут вопрос даже не стоит, подлинность этой даты изначально не гарантируется.
Тем не менее, узнать дату отправки коммита на сервер, если она отличается от даты создания, можно несколькими способами:
1. Локально - с помощью команды git reflog:
$ git reflog show origin/test --date=iso 5d77a46 (HEAD -> test, origin/test) refs/remotes/origin/test@{2020-10-10 23:53:59 +0500}: update by push f5ce51c refs/remotes/origin/test@{2020-10-10 23:44:11 +0500}: update by push 8965780 refs/remotes/origin/test@{2020-10-10 23:42:36 +0500}: update by push
Само собой, эти даты тоже можно подменить, так что в плане доказательства это ничего не дает.
2. Если у репозитория настроены задачи CI с событием
on: [push]
, то в логах CI запуск задачи для коммита будет виден именно со временем его отправки на сервер. Например, этот коммит я локально создал в 10:08 по уральскому времени - это 5:08 GMT, а отправил на сервер в 11:53 GMT. В логах CI отображается второе время: https://github.com/MSDN-WhiteKnight/CilTools/runs/1235315854Логи CI можно удалить, но подделать, насколько я знаю, нельзя, по крайней мере, при использовании стандартных VM от Github Actions.
3. Если с веткой связан Pull request, при использовании команды push -f в интерфейсе светится реальное время отправки на сервер:
Благодаря этому, если было изменение/удаление коммитов, это можно обнаружить, так как при этом всегда делается force push. Но, как я уже сказал, с веткой должен быть связан Pull request, и он должен быть создан до force push.
Таким образом, есть некоторые признаки, которые позволяют обнаружить ложное время коммитов, но все они не абсолютные и вряд ли могут являться юридически значимыми. Думаю, только свой сервер Github Enterprise в полной мере решает проблему - там можно поднять логи и все увидеть.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.