빈 커밋을 원격으로 푸시하는 중
원격으로 커밋 하나를 푸시했지만 커밋 메시지가 올바르지 않다는 것을 알게 되었습니다.커밋 메시지를 변경하고 싶지만 AFAIK는 불가능합니다.그래서 저는 빈 커밋을 올바른 메시지로 만들기로 결정했습니다.
git commit --allow-empty
빈 커밋을 푸시할 때의 단점/결과가 있습니까?이 공허한 약속 때문에 앞으로 제가 직면할 수 있는 문제가 있습니까?
빈 커밋의 한 가지 용도는 새 커밋을 푸시할 때마다 빌드가 트리거되는 환경에서 빌드를 강제로 수행하는 것입니다.
git commit --allow-empty -m "Trigger Build"
끔찍한 결과에 직면하지 않을 것입니다. 단지 역사가 혼란스러워 보일 뿐입니다.
다음을 수행하여 커밋 메시지를 변경할 수 있습니다.
git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)
하지만 이것은 당신의 먼 역사를 덮어쓸 것입니다. 그 동안 누군가가 그 레포를 뽑았다면, 그 사람은 당신에게 매우 화가 날 것입니다.
레포에 액세스하는 유일한 사용자인 경우에만 수행합니다.
커밋을 푸시하면 비어 있든 없든 결국 깃 후크가 트리거됩니다.이것은 아무 것도 하지 않거나 세계를 뒤흔드는 결과를 초래할 수 있습니다.
빈 커밋을 푸시할 경우의 단점/결과가 있습니까?
극심한 혼란은 차치하고, 왜 마스터에 대한 내용이 없는 커밋이 많은지에 대해 누군가가 알게 될 수도 있습니다.
원격으로 푸시한 커밋을 변경할 수 있지만 커밋의 sha1(기본적으로 ID 번호)이 영구적으로 변경되어 소스 트리가 변경됩니다. 그러면 다음 작업을 수행해야 합니다.git push -f
원격으로 되돌아갑니다.
빈 커밋에서 다른 커밋을 명확하게 참조하기만 하면 됩니다.다음과 같은 것:
Commit message errata for [commit sha1]
[new commit message]
다른 사람들이 지적했듯이, 이것은 종종 수정된 커밋을 강제로 추진하는 것보다 더 좋습니다.
혼란스러운 역사에 대해 저는 궁극적으로 미래의 고고학자들의 삶을 더 쉽게 만들 수 있는 제안을 가지고 있습니다.
git commit --allow-empty -m "message for commit DEADBEF was wrong. Correct Msg: ..."
where DEADBEF는 잘못된 메시지가 있는 커밋 해시(SHA)를 나타냅니다.
또는 빈 커밋이 불가능하거나 허용되지 않는 경우 문서를 작성할 수 있습니다.
커밋 댓글/$SHA.txt
추가/커밋하고 푸시합니다.
BTW: 어쨌든 git history가 매우 자주 혼란스럽다는 것을 인정하지 않을 수 없습니다 :)
이건 어때요?
git commit --allow-empty-message -m ''
언급URL : https://stackoverflow.com/questions/20138640/pushing-empty-commits-to-remote
'source' 카테고리의 다른 글
모든 키 누르기에서 Angular 2 변경 이벤트 (0) | 2023.05.06 |
---|---|
셸 스크립트에서 심볼릭 링크를 확인하는 방법 (0) | 2023.05.06 |
변수 주석이란 무엇입니까? (0) | 2023.05.01 |
RegisterStartupScript와 RegisterClientScriptBlock의 차이점은 무엇입니까? (0) | 2023.05.01 |
Swift에서 명령줄 인수에 액세스하는 방법은 무엇입니까? (0) | 2023.05.01 |