2017-12-07 26 views
0

저장소의 현재 git sha1을 생성하려고합니다. git 명령을 사용하여 생성 할 수있는 마지막 커밋 sha1을 원하지 않습니다. 다음 커밋 (파일이 변경되지 않은 경우)에서 사용될 sha1을 원합니다.현재 저장소의 git sha1을 생성하는 방법

sha1 저장소의 정의가 포함 된 헤더 파일을 생성하고 싶습니다. 이것은 상대방 git commit 및 viceversa와 실행 파일을 일치시킬 수있게 해줍니다.

문제는 모든 실행 파일이 안정적인 커밋 (특히 개발 단계에서)으로 생성되는 것은 아니라는 점입니다. 마지막 커밋 SHA1 - - 현재 저장소 SHA1

그들이 현재 실행 파일이 안정 확약을 사용하여 생성되는 것을 의미한다 일치하는 경우 : 나는 모두를 포함하도록 선택할 이러한 이유로

. 그렇지 않으면 실행 파일의 시작 커밋이 무엇인지 알 수 있습니다.

나를 도와 줄 사람이 있습니까?

+0

커밋 개체 내용을 구성하고 해당 체크섬을 계산합니다. –

+0

그러나 파일이 변경되지 않은 경우 왜 다른 커밋을해야합니까? 팁 커밋의 SHA가 충분해야합니다? 어떤 문제를 해결하려고 여기에 있습니까? –

+0

그러나, 당신이 계산하는 것은 * ** 다음 커밋 sha가 아닌 * 가능한 커밋 sha *입니다. 커밋 된 시간은 체크섬과 관련이 있습니다. 즉,이를 수행 할 수 있으려면 미래를 예측해야합니다. 당신이 그 문제를 풀었을 때 알려주고 당신이 묻는 질문에 금이 간다. 성취하고자하는 것을 더 설명하십시오. –

답변

1

https://gist.github.com/masak/2415865

난 그냥 자식의 SHA1은 저자뿐 아니라 저장소 파일이 커밋에 따라 커밋 (위의 링크를 사용하여) 발견. 그래서 나는 내가 원하는 것을 성취하는 것이 불가능하다고 생각합니다.

+1

올바른지, 커밋이 수행 된 시간에 따라 달라 지므로 누가 다음 커밋을 커밋 할 것인지 알 수있을지라도 언제 예측할 수 없습니다. 또한이 주석은 SHA의 일부이기도합니다. 즉, 미래를 예측해야합니다. –

+0

감사합니다. Lasse. 내 질문에 대한 업데이트를 읽어보십시오. 내가 원하는 것을 성취 할 수있는 대안이 있다고 생각합니까? – Franconet

+0

예, 빌드 서버를 설정하면 빌드 커밋을 항상 정확하게 알 수 있습니다. –