program tip

변화와 새 메시지를 전하지 않는 방법?

radiobox 2020. 7. 27. 07:48
반응형

변화와 새 메시지를 전하지 않는 방법?


commit파일을 변경하지 않은 경우 어떻게 새 메시지를 작성하고 새 메시지를 작성할 수 있습니까?

커밋 코드 (SHA?)가 동일하기 때문에 이것이 가능하지 않습니까?


이를 수행 할만한 이유는 거의 없지만 매개 변수는 빈 메시지 --allow-empty와 달리 빈 커밋에 --allow-empty-message대한 것입니다. 온라인 설명서를 입력 git help commit하거나 방문하여 자세한 내용을 읽을 수도 있습니다 .

트리 객체 (해시 자체가 있음)는 동일하지만 커밋에는 실제로 다른 타임 스탬프와 메시지가 있고 다른 부모 커밋이 있기 때문에 실제로 다른 해시를 갖게됩니다. 이러한 세 가지 요소가 모두 git객체 해시 알고리즘에 통합되었습니다 .


있습니다 당신은이 (의견의 일부를 포함) 저지를 비워 할 수있는 몇 가지 이유 :

  • "선언적 커밋"으로 테스트 또는 보푸라기 통과 ( Robert Balicki 사용 )에 대한 사후 데이터를 포함하여 내레이션 또는 문서 ( DavidNeiss 를 통해 ) 를 추가합니다 .
  • Vaelusgit 를 통해 임의의 변경을 생성하지 않고 명령 을 테스트 합니다 .
  • gitolite( Tatsh 사용 ) 사용하여 삭제 된 Bare 저장소를 다시 작성하십시오 .
  • 빌드 도구를 다시 트리거 하거나 ( mattLummus 를 통해 ) 개인 로깅 또는 메트릭을 위해 ( DynamiteReed 를 통해 ) 임의로 커밋을 새로 만듭니다 . 그러나 브랜치 / 병합 구조에 따라 커밋이 매우 오랫동안 지속될 수 있으므로 "무의미한 커밋 없음"전략이 실수로 팀의 저장소를 임시 워크 플로우 아티팩트로 오염시켜 코드 개정을 분리하기 어렵게 할 수 있습니다 임시 변덕.

커밋 트리에 메타 데이터를 추가하는 다른 전략은 다음과 같습니다.

  • 항상 특정 상태의 커밋을 가리키는 별도의 분기 또는 경량 태그 (예 : "마지막으로 승인 된 커밋"또는 "현재 스테이징 커밋")
  • 커밋 트리 자체에 항목을 추가하지 않고 기존 커밋을 가리키는 타임 스탬프, 커미터 및 메시지를 기록하는 방법에 대한 주석이 달린 태그 .
  • git notes 기존의 불변 커밋 위에 변경 가능한 메모를 연결합니다.

내가 당신을 올바르게 이해했다면, 당신은 빈 커밋을 원합니다. 이 경우 다음이 필요합니다.

git commit --allow-empty

메시지가있는 빈 커밋

git commit --allow-empty -m "Empty test commit"

빈 메시지와 함께 빈 커밋

git commit --allow-empty --allow-empty-message

gitversion 과 같은 시스템을 사용하는 경우 이러한 종류의 커밋을 수행하는 것이 좋습니다. + semver : major comment를 사용하여 메이저 버전을 충돌시키는 커밋을 가질 수 있습니다.


더 현명한 대안으로 주석이 달린 태그 (메시지가있는 커밋)를 만들 수 있습니다 . git tag -a옵션을 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/12470029/how-to-commit-no-change-and-new-message

반응형