2014-09-05 5 views
2

git init의 날짜/시간을받을 수 있습니까?Git 저장소 초기화의 날짜를 얻는 방법은 무엇입니까?

첫 번째 커밋이 아닙니다.

가능하면 어떻게받을 수 있습니까?


나는 이것을 지속적으로 통합하기 위해 개정판 번호를 찾고있다. 버전 키에 Git 커밋 해시를 사용하고 싶지만 iOS 앱이며 버전 문자열에 숫자와 쉼표 만 사용해야한다는 몇 가지 제한 사항이 있습니다.

다음으로, 개정 번호로 Unix 타임 스탬프 (초)를 사용하려고했지만 너무 커서 프로젝트에 대한 의미있는 정보를 표시 할 수 없습니다. 그리고 나서 현재 Git 저장소가 생성 된 이후로 몇 초를 계산한다는 또 다른 아이디어가 있습니다. 나의 현재 생각은

,

HEAD_TIMESTAMP=`git show -s --format=%ct HEAD` 
INIT_TIMESTAMP=<get init date> 
DELTA=`expr $HEAD_TIMESTAMP - $INIT_TIMESTAMP ` 
DAYS=`expr $DELTA/86400` 
SECS=`expr $DELTA % 86400` 
REV=$DAYS.$SECS 

나는 날짜/첫번째 커밋의 시간을 사용하는 것도 가능하다고 생각. 그러나 그것이 가능하다면 git init의 날짜/시간을 사용하고 싶습니다. 저장소가 실제로 생성되기 때문입니다.

+0

살펴보다 몇 수
를 '자식 초기화 '도망 쳤다. 문제의 저장소가 초기화되지 않고 복제 된 경우 어떻게해야합니까? 그러나 최선의 방법은'.git/description' 파일의 타임 스탬프를 얻는 것입니다. 그것은'git init'에서 생성 된 하나의 파일이며 이후로 변경되지 않았을 수도 있습니다. – Jubobs

+0

지속적인 통합을위한 리비전 번호로 계속해서 카운트하거나 git commit hash 또는 date와 git commit hash를 사용할 수 있습니다. 몇몇 기계의 시계와 시간에 의존하는 것은 어느 시점에서 잘못 될 것입니다. 커밋 수를 세어 볼 수도 있지만, 하나 이상의 브랜치를 빌드하면 충돌합니다. – orkoden

+2

@Jubobs에 언급 된 바와 같이, 이것은 일반적으로'git'에 의해 기록되지 않습니다. 그러나 완전하게 신뢰할 수없는 해결 방법으로'.git' 디렉토리 ('description','branches','info' 및'hooks'와 같은)에 몇 개의 파일/디렉토리가 있습니다. 'git init'이 실행 된 시간 스탬프 ... – twalberg

답변

1

당신은 .git 디렉토리의 생성 날짜 찾을 수 있습니다, 힘내 타임 스탬프를 기록하지 않습니다
stat -c %i .git 당신에게 줄 것이다 sudo debugfs -R 'stat <your_number>' /dev/sdXY를 실행하고 내가 아는 한 crtime:

+1

신뢰할 수 없습니다. '.git' 폴더가 생성 된 날짜는 반드시'git init'이 실행 된 날짜와 일치하지 않습니다. 프로젝트 디렉토리를 복사하여 다른 곳에 붙여 넣는 경우를 생각해보십시오. – Jubobs

+0

@jthill 아이 노드의'ctime'에 매우 일반적인 오해 인 것처럼 보이는 생성 시간이 포함되어 있다면 사실 일 수 있습니다. 그러나 'ctime'은 "마지막 상태 변경 시간"을 나타냅니다. 이는 단순히 생성 이외의 다양한 이벤트에 대해 업데이트 될 수 있습니다 - 소유자, 그룹, 링크 수 변경 (이 경우 디렉토리에 파일 추가 또는 제거), 모드 등등 ... – twalberg

+0

@twalberg 글쎄, 적어도 하나 이상으로는 덜 일반적입니다 :-P ... 고마워요. – jthill

관련 문제