개발/기타

[Git] Branch에 따라 다른 Commit ID

승리승리 2021. 12. 14. 14:40

현재 속한 곳에서는 배포를 위해

1. Issue를 처리 한 뒤

2. Commit/Push 후

3. 배포 담당자에게 Commit 메시지와 ID를 전달한다.

 

그동안 이와 관련하여 문제가 없었으나 오늘 배포 담당자에게 문의가 왔다.

- 승리님 전달주신 Commit ID a2db가 조회가 안되는데 확인해주실 수 있으신가요?

?? 얼른 내 SourceTree를 확인해보니 Commit ID의 3을 2로 잘못 작성해서 전달하였다.

죄송합니다. 숫자를 잘못 작성하였네요. 혼란을 드려 죄송합니다.
- 그래도 똑같이 조회가 안됩니다.

엥??

자리로 직접 찾아가서 보니 Git lab 홈페이지에서 보이는 Commit ID는 xx1xx.

내 자리로 돌아와서 확인해보니 여전히 a3db

현재 작업 중인 내용을 우선 스태시에 저장하고 develop Branch로 이동해본다.

?? 해당 Commit의 ID가 xx1xx로 변경되었다.

 

내가 아는 Commit ID는 여러 정보를 담고 있으며 이를 SHA1으로 Hash한 값이며 유일한 값으로 알고 있는데...

구분 값인 ID가 Branch에 따라 변경된다고..?

 

이해가 되질 않아 구글링해보니...

https://stackoverflow.com/questions/44456588/how-is-it-possible-that-a-commit-got-different-commit-ids

 

How is it possible that a commit got different commit ids?

Hello i have 2 branches master feature_xyz Some how it happens a couple of commits which originated in master branch and also in feature_xyz got different commit ids. So it is not more possible...

stackoverflow.com

1. Commit을 어떻게든 수정하면 새로운 ID값을 할당받는다.

2. 작성자, 작성일, Commit 일시, 변경 사항, 메시지 등 모든 내용은 Commit ID의 일부이다.

3. Commit은 어떤 Branch에도 속하지 않으며 특정 시점의 Branch의 일부일 뿐이다.

4. 이에 Commit을 수행한 Branch와 상이한 Branch로 CheckOut한다면 해당 Commit의 정보 또한 변경되므로 Commit ID가 변경된다.

 

^오^

 

나름 쓸만큼 써왓다고 생각했는데 처음 알았다.

앞으로 꼭 배포가 이루어지는 Branch로 CheckOut 후 Commit ID를 확인해야겠다.