git commit이 무엇인지, 어떤 부분이 commit의 sha 해시에 참여하는지 검색하려고했습니다. 하지만 아마 내가 찾은 단어를 잘못 묻는 것 같습니다.git commit integrity
어떤 커밋으로 구성되어 있는지 궁금합니다. 나는 이미지가 따르는 사회 책을 조금 읽고 :
그러나 나는 그림에 표시된 것보다 더 많은 필드가 커밋 생각합니다.이제 주요 질문 : 어떤 필드가 커밋 sha 해시에 참여합니까? 같은 sha 해쉬를 가진 다른 저장소에서 두 개의 커밋을 얻었지만, 다른 커밋을 사용했다. 그 전에 나는 두 개의 커밋이 같고 동일한 커밋을 가지고 있다면 같은 sha hash를 가질 수 있다고 생각했다. 그래서 나는 약간 혼란 스럽다.
두 개의 로컬 리포지토리 (git1, git2)가 있습니다. 하나는 다른 하나의 복제본입니다.
git1 범
commit 4f438f9579939312689eb67e5fb7957d87cfa036 <-- this commit
Author: Michael Nesterenko <[email protected]>
Date: Mon Jun 25 00:00:31 2012 +0300
stuff after change
commit e91e833158bb44f54f418cc5c3e1832452051428
Merge: dc69dc2 0b5912b
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:09:18 2012 +0300
Merge branch 'master' of e:/temp/git2
Conflicts:
file.file
commit 0b5912bd1a1cb9b78410fe5c0dc67845ca1deec5
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:06:46 2012 +0300
c8
commit dc69dc25a1e0c9067cbca19fe6a1d078a19138a0
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:06:29 2012 +0300
c7
commit f6d88da1ecc3106f6debe1eac80d4b02705bcecf
Merge: d1a3c38 6134e66
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:05:05 2012 +0300
Merge branch 'master' of e:/temp/git1
Conflicts:
file.file
commit d1a3c389416ff88e195e93def9a956fad1e63819
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:03:47 2012 +0300
git2
commit e1ee3b2756d4d8440ae3661df3fb3ec9af7cd55a
Merge: 4296e1b 4f438f9
Author: Michael Nesterenko <[email protected]>
Date: Mon Jun 25 00:01:30 2012 +0300
Merge branch 'master' of e:/temp/git1
Conflicts:
file.file
commit 4f438f9579939312689eb67e5fb7957d87cfa036 <-- this commit
Author: Michael Nesterenko <[email protected]>
Date: Mon Jun 25 00:00:31 2012 +0300
stuff after change
commit 4296e1bd046c4008166cfc516ef5ee2ce98a27d1
Author: Michael Nesterenko <[email protected]>
Date: Sun Jun 24 23:57:14 2012 +0300
more stuff
commit e91e833158bb44f54f418cc5c3e1832452051428
Merge: dc69dc2 0b5912b
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:09:18 2012 +0300
Merge branch 'master' of e:/temp/git2
Conflicts:
file.file
commit 0b5912bd1a1cb9b78410fe5c0dc67845ca1deec5
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:06:46 2012 +0300
c8
commit dc69dc25a1e0c9067cbca19fe6a1d078a19138a0
Author: Michael Nesterenko <[email protected]>
Date: Mon May 7 02:06:29 2012 +0300
다른 부모하지만 같은 샤 해시를 가지고있다.
커밋에 각 저장소에 다른 부모가 있다고 생각합니까? 각 저장소에'git cat-file commit 4f438f9579939312689eb67e5fb7957d87cfa036'의 결과를 보여주십시오. 또한 게시 한 출력을 생성하기 위해 어떤 log 명령을 실행 했습니까? –
@CharlesBailey, 로그 출력으로 생각하게 만들었습니다. 그러나 어떤 이유에서 두 저장소에서'git log'는'4f438f9579939312689eb67e5fb7957d87cfa036'에 대해 같은 부모 커밋을 보여줍니다. 기묘한!'git1'에는'e91e833158bb44f54f418cc5'가 있고'git2'에는'4296e1bd046c4008166cfc516ef5ee2ce98a27d1'이 있습니다. –
어떤 옵션을 사용하여 기록 했습니까? '--graph'와 같은 일을하지 않으면 실제 부모 관계를 볼 수 없으며 합리적으로 논리적 인 순서로 요청한 모든 커밋을 볼 수 있지만 다른 커밋 전에 커밋이 있는지를 확신 할 수는 없습니다 직계 후손. –