2015-03-06 2 views
1

У меня есть некоторые файлы в моем мерзавца репомерзавца архив сохранить время

... 
-rw-r--r-- 1 dimti dimti 11489 мар 2 21:54 wp-settings.php 
... 

После выполнения командной

git archive --format=tar HEAD > repo.tar 

Принести мои файлы в тар-архиве, но изменить время неправильно:

-rw-r--r-- 1 dimti dimti 11115 мар 5 21:55 wp-settings.php 

Как сказать архиву git - сохранить время изменения файлов в tar-архиве?

ответ

3

Вы можете попробовать и пометить его первым, чтобы использовать этот тег, или использовать фиксацию ID

git archive man страница упоминает:

git archive ведет себя по-другому, когда дано дерево ID против когда дано идентификатор фиксации или идентификатор тега.

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

Так что в вашем случае (с помощью "How to retrieve the hash for the current commit in Git?"):

git archive --format=tar $(git rev-parse HEAD) > repo.tar 
+0

Привет. Ваш ответ - не решить мой вопрос. Да. Я добавил «HEAD» в команду git archive. Но мой вопрос - как сохранить время модификации файлов после выполнения git-архива (файлы в tar-архиве - с другим временем изменения и исходными файлами в git-репо) –

+0

@AlexanderDemidov tar будет сохранять исходное время, если вы * не * используете 'HEAD' для' git archive' – VonC

+0

NB: использование идентификатора фиксации, как это делает * not * использование точного времени, когда определенный файл был изменен, но дата зафиксированного фиксации. Если нужно восстановить все исходные даты, то необходимо что-то вроде этого (в настоящее время): http://stackoverflow.com/a/22638823/1905491 – stefanct

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