빈 커밋을 원격으로 푸시


242

하나의 커밋을 원격으로 푸시했지만 이제 커밋 메시지가 올바르지 않다는 것을 깨달았습니다. 커밋 메시지를 변경하고 싶지만 AFAIK는 불가능합니다. 그래서 올바른 메시지로 빈 커밋을 만들기로 결정했습니다.

git commit --allow-empty

빈 커밋을 푸시 할 때의 단점 / 결과가 있습니까? 이 빈 커밋으로 인해 앞으로 직면 할 문제가 있습니까 ??


1
이 비슷한 질문을 확인하십시오 stackoverflow.com/questions/6218199/…
Montaro

답변:


80

당신은 끔찍한 결과에 직면하지 않을 것입니다. 역사는 혼란스러워 보일 것입니다.

할 수있어 (가) 수행하여 커밋 메시지를 변경

git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

그러나 이것은 당신의 원격 기록을 재정의 할 것입니다.

당신이 레포에 접근하는 유일한 사람이라면 그냥하세요.


5
그렇기 때문에 내가 빈 커밋을 선호하는 이유
mrutyunjay

4
@mrutyunjay 다른 사람들이 레포를 뽑을 가능성이 있다면, 더 좋은 옵션이라고 생각합니다.
가브리엘 페트로 넬라

1
당신은 끔찍한 결과에 직면하지 않을 것입니다. 역사는 혼란스러워 보일 것입니다 . ;-)
Alois Mahdal

3
선호 --force-with-lease공동 작업자의 작업 손실을 방지 할 수 있습니다.
Kenzo

22

비어 있는지 여부에 관계없이 커밋을 수행하면 최종 git hook이 트리거됩니다. 이것은 아무것도 할 수 없거나 세계를 산산조각 낼 수 있습니다.


9
이것은 과소 평가입니다. 예, 빈 커밋은 푸시 된 커밋을 수정하는 것보다 우수 할 수 있지만 후크가있을 경우 부작용이없는 것으로 가정 할 수 없습니다.
wintermute92

18

빈 커밋을 푸시 할 때의 단점 / 결과가 있습니까?

극단적 인 혼란을 제외하고 누군가가 마스터에 내용이없는 커밋이 많은 이유에 대해 알 수 있습니다.

당신은 할 수 있습니다 당신은 그 다음해야 할 것 - 어떤 변경합니다 소스 트리를 영구적으로 변경됩니다 당신이 원격으로 밀어 커밋,하지만의 SHA1은 (기본적으로의 ID 번호) 커밋 변경 git push -f원격 가기.


15

빈 커밋에서 다른 커밋을 명확하게 참조하는 한 괜찮습니다. 다음과 같은 것 :

Commit message errata for [commit sha1]

[new commit message]

다른 사람들이 지적했듯이 올바른 커밋을 강제로 푸시하는 것이 좋습니다.


12
 $ git commit --allow-empty -m "Trigger Build"

2
이 코드가 문제를 해결하는 방법과 이유에 대한 설명포함 하여 질문을 해결할 수는 있지만 게시물의 품질을 향상시키는 데 도움이되고 더 많은 투표를 할 수 있습니다. 지금 질문하는 사람이 아니라 독자들에게 질문에 대답하고 있음을 기억하십시오. 제발 편집 설명을 추가하고 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을. 검토에서
이중 신호음

-1

이건 어때?

 git commit --allow-empty-message -m ''

메시지를 단순히 제거했기 때문에 커밋이 비어 있으면 더 이상 이유가없는 메시지가 있어야합니다.
Eric Bishard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.