0

git には、コミット日が異なる 2 つのファイルがあります。しかし、私が作成するgit-archiveと、同じコミット日が表示されます。なぜですか?

[[ -e git_test ]] && rm -rf git_test
mkdir git_test
cd git_test
git init

# make file01
echo 'f01 $Format:%cd$' > file01.txt
echo 'file01.txt export-subst' >> .gitattributes
git add .gitattributes file01.txt
git commit -m "adding file01"
sleep 1
# make file02
echo 'f02 $Format:%cd$' > file02.txt
echo 'file02.txt export-subst' >> .gitattributes
git add .gitattributes file02.txt
git commit -m "adding file02"

# git archive
git archive HEAD | tar -x -C ..

echo
echo "git log date"
git log --format="%cd" file01.txt
git log --format="%cd" file02.txt

echo
echo "git archive date"
cd ..
cat *.txt

出力ではgit-log、コミット日が異なります (1 秒) が、で生成されたファイルgit-archiveのコミット日は同じです

git log date
Fri Dec 27 15:17:22 2013 -0300
Fri Dec 27 15:17:23 2013 -0300

git archive date
f01 Fri Dec 27 15:17:23 2013 -0300
f02 Fri Dec 27 15:17:23 2013 -0300
4

2 に答える 2

0

archive最後に変更されたファイルのみを使用して解決しました

 git archive HEAD $(git diff --name-only HEAD^) | tar -x -C

この方法では、最後に変更されたファイルよりもコミット日 (およびファイル) だけが変更されます。

于 2014-02-03T17:56:11.883 に答える