GitHub에서 git commit 메시지 편집


173

GitHub.com제출 후 에서 커밋 메시지를 온라인으로 편집하는 방법이 있습니까?

커맨드 라인에서 할 수있는 일

git commit --amend -m "New commit message"

다른 질문 에서 올바르게 제안 된대로 .

시도 git pull하고 git push작동했습니다 (다른 커밋이 그 동안 방해받지 않은 상태).

그러나 GitHub웹 사이트 를 통해 할 수 있습니까?


@ DanGreen-Leipciger의 답변 은 허용되지는 않지만 참조하십시오 .
RBT

답변:


101

아니요, 이것은 직접 가능하지 않습니다. 모든 Git 커밋의 해시는 커밋 메시지를 기반으로 계산됩니다. 커밋 메시지를 변경하면 커밋 해시가 변경됩니다. 해당 커밋을 푸시하려면 해당 푸시를 강제로 수행해야합니다 (git push -f). 그러나 이미 누군가가 이전 커밋을 가져 와서 해당 커밋을 기반으로 작업을 시작한 경우 새 커밋에 자신의 작업을 리베이스해야합니다.


또한 git pull을 수행 한 다음 git push를 수행하면 효과가 있습니다. 그러나 분명히 온라인 방법은 없습니다.
PNS

2016 년 4 월 5 일부터 아직 불가능
bigT

그리고 이미 게시 된 지점의 커밋 기록을 변경해야하므로 우선 순위가 높지 않을 것입니다 (200 % 확신하는 경우를 제외하고는 아무도 자신의 로컬 컴퓨터 에이 지점이 없음).
dunni

이것은 절반 만 사실입니다. 사실이지만 가정 만합니다. @DanGreen (아래)의 답변과 결합하면 더 좋습니다. 그것은 "직접적으로 가능하지"않으며, 확실히 예고와 함께 제공됩니다. 기술적으로 가능할 때 가능한 것은 불완전한 대답입니다.
Bane

1
OP는 Github 웹 사이트에서 온라인으로 할 수 있는지 물었습니다. AFAIK 아직 불가능합니다. 따라서 내 대답은 유효하며 Dan Green의 대답은 Githubs 웹 사이트가 아닌 로컬에서 수행하는 방법 만 처리합니다.
dunni

145

이를 수행하기위한 GitHub의 지침 :

  1. 명령 행에서 수정하려는 커밋이 포함 된 저장소로 이동하십시오.
  2. 입력 git commit --amend하고 Enter를 누르십시오.
  3. 텍스트 편집기에서 커밋 메시지를 편집하고 커밋을 저장하십시오.
  4. git push --force example-branch이전 커밋을 강제로 푸시 하려면이 명령을 사용하십시오 .

출처 : https://help.github.com/articles/changing-a-commit-message/


11
조심해! <git commit --amend> & <Enter>와 <git commit --amend -m "new commit message">를 사용하는 것의 차이점은 첫 번째 경우 텍스트 편집기에서 커밋 메시지를 편집하는 것입니다 & 두 번째로 "새 커밋 메시지"로 대체하십시오. 강제로 푸시하면 리모컨의 커밋이 바뀝니다. 이것은 팀의 다른 사람들이 이전 커밋을 가져 왔을 때 이제 다른 컴퓨터에서 다른 커밋 (다른 커밋 포함)을 갖는 문제를 해결하지 못합니다. 아무도 당신의 커밋을 풀지 않았다는 것을 알고 있다면 이것은 안전합니다. 읽기 소스 Dan 게시
TMin

7
git commit --amend항상 존재했습니다. 또한 오픈 소스 명령 줄 도구 인 git과 온라인 소스 호스팅을 제공하는 회사 인 Github 사이에 혼란스러워지고 있습니다.
vinyll

1
OP는 GitHub에 대해, 특히 커밋이 서버에 푸시 된 후에 대해 물었습니다. OP가 요청한 것을 수행하기위한 GitHub의 지침입니다.
Dan Green-Leipciger

3
@ DanGreen-Leipciger-예,하지만 웹 사이트 자체에서는 수행되지 않으며 명령 줄을 사용하여 수행됩니다. 나는 PNS가 웹 인터페이스 내에서 그것을하고 싶다고 생각합니다.
PhistucK

2
OP는 GitHub로 작업을 수행하는 방법을 구체적으로 요청했습니다. GitHub를 사용하여 작업을 수행하는 방법입니다.
Dan Green-Leipciger 2016 년

30

git push -f아무도 다른 커밋을 이전에 가져간 적이 없다고 가정 해야합니다 . 역사가 바뀌고 있다는 것을 명심하십시오.


3

커밋 메시지는 커밋 SHA / 해시와 관련되어 있으므로 변경하면 커밋 SHA도 변경됩니다. 내가 사용한 방법은 해당 커밋에 대한 의견을 작성하는 것입니다. 다른 방법으로는 생각할 수 없습니다.


2

intellij 사용자의 경우 : 과거 커밋에 대해 대화식 방식으로 변경하려면 Intellij의 아래 단계를 따르십시오 .

  • 버전 관리를 선택하십시오
  • 로그 선택
  • 주석을 수정하려는 커밋을 마우스 오른쪽 버튼으로 클릭하십시오.
  • 리워드 클릭
  • 끝난

그것이 도움이되기를 바랍니다.


0

나는 같은 문제에 직면했다.

특정 분기에 대해서는 github에서 확인하면 해당 분기에서 첫 번째 커밋의 커밋 ID를 알게됩니다. 그것에 rebase를 수행하십시오 :

자식 rebase -i

에디터가 열립니다. github UI에서 커밋을 추적하고 편집기를 열고 메시지를 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.