programing

변경 및 새 메시지를 커밋하지 않는 방법?

bestprogram 2023. 6. 26. 21:29

변경 및 새 메시지를 커밋하지 않는 방법?

어떻게 새로 만들 수commit파일을 변경하지 않은 경우 새 메시지를 생성하시겠습니까?

커밋의 코드(SHA?)가 동일할 것이기 때문에 이것은 불가능합니까?

그럴 만한 충분한 이유는 거의 없지만 매개 변수는--allow-empty빈 커밋(변경된 파일 없음)의 경우와 대조적으로--allow-empty-message빈 커밋 메시지의 경우.또한 입력하여 더 많은 정보를 읽을 수 있습니다.git help commit또는 온라인 설명서를 방문합니다.

트리 개체(자체 해시 포함)는 동일하지만 다른 타임스탬프와 메시지를 가질 수 있고 부모 커밋도 분명히 다를 수 있기 때문에 커밋은 실제로 다른 해시를 가질 수 있습니다.이 세 가지 요소가 모두 통합되어 있습니다.git의 개체 해시 알고리즘입니다.


빈 커밋(일부 주석 포함)을 원하는 몇 가지 이유가 있습니다.

  • "선언적 커밋"으로 데이비드 니스를 통해 (로버트 발리키를 통해) 합격 또는 보풀에 대한 사후 데이터를 포함한 내레이션 또는 문서를 추가합니다.
  • 테스트 대상git(Vaelus를 통해) 임의 변경 사항을 생성하지 않고 명령을 실행할 수 있습니다.
  • 다음을 사용하여 삭제된 맨 저장소를 다시 생성하려면 다음과 같이 하십시오.gitolite(Tatsh 경유).
  • 빌드 도구를 다시 트리거하거나(매트 럼스를 통해) 개인 로그 또는 측정 기준을 위해(다이너마이트 리드를 통해) 임의로 새 커밋을 만드는 것입니다.그러나 지점/합병 구조에 따라 커밋이 매우 오래 지속될 수 있으므로 "아무것도 커밋하지 않음" 전략은 팀의 저장소를 일시적인 워크플로우 아티팩트로 오염시키고 코드 수정사항을 일시적인 크래프트와 분리하는 것을 어렵게 만들 수 있습니다.

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

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

메시지와 함께 커밋 비우기

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

빈 메시지와 함께 빈 커밋을 선택하지만 메시지를 입력하라는 메시지가 표시됩니다.

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

빈 메시지가 있는 빈 커밋

git commit --allow-empty --allow-empty-message -m ""

내가 당신을 제대로 이해했다면, 당신은 빈 약속을 하고 싶어합니다.이 경우 다음이 필요합니다.

git commit --allow-empty

만약 당신이 git version과 같은 시스템을 사용하고 있다면 이런 종류의 커밋을 하는 것이 매우 합리적입니다.특히 +semver: major 주석을 사용하여 major 버전을 범핑하기 위한 커밋이 있을 수 있습니다.

좀 더 합리적인 대안으로 주석이 달린 태그(메시지가 포함된 명명된 커밋)를 만들 수 있습니다.참조git tag -a선택.

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