РЕДАКТИРОВАТЬ : Сводка : Git не допускает даты до 1973/03/03 09:46:40 (эпоха + 100000000 с), заданные в «внутреннем формате даты» (секунды начиная с эпохи). Это должно разрешить "20110224" как краткую форму "2011-02-24". - Это не ошибка : Не совсем, но это также не задокументировано. - Обходной путь : не полагайтесь на внутреннюю дату git, если вы не можете. - Благодаря : хоббс
Привет всем,
У меня есть некоторые проблемы с git filter-branch, которые я отследил до git commit-tree. Рассмотрим этот сценарий:
#!/bin/bash
# please run these commands in an empty directory
# (should not destroy an existing repo, though. I think it would only
# a few dangling objects)
set -e -o pipefail
git init
tree=$(git write-tree)
commit=$(echo "my first commit -- the tree is empty" |
env GIT_AUTHOR_DATE="0 +0000" git commit-tree $tree)
echo "This is commit $commit:"
git cat-file commit $commit
Обратите внимание, что env GIT_AUTHOR_DATE="0 +0000"
устанавливает дату, используя "внутренний формат Git" - подробности см. На странице руководства git-commit-tree - 1970-01-01.
Но вывод этого скрипта (необработанный коммит) будет
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author Jane Doe <jane> 1298477214 +0100
committer Jane Doe <jane> 1298477214 +0100
my first commit -- the tree is empty
Теперь почему git игнорирует $ GIT_AUTHOR_DATE? Если это имеет значение, мой git --version
дает git version 1.7.1
.