lllllllllllllll
8k
2018-02-11 17:57:52 작성 2018-02-11 17:58:41 수정됨
13
2087

아ㅠㅠ 깃허브에 커밋할때 실수로 메시지 안고치고 그냥 커밋해버렸어요 어떡하죠


다른 팀원 프로젝트를 제꺼에 합치고 커밋을 했는데요

커밋할때 "ㅇㅇㅇ의 프로젝트와 합체 완료"라고 메시지에 적어놔야 명확하게 구분이 되는데

제가 실수로 이전 메시지 그대로 그냥 커밋해버려서 저 메시지가 고쳐지지가 않네요




이거 메시지 어떻게 고치나요?

수정내역을 명확하게 정리하고 싶었는데 에잇 속상해죽겠네요

(근데 정작 팀원들은 깃허브 사용 안해서 딱히 신경 안쓴다는게 함정)

0
0
  • 답변 13

  • devjang
    1k
    2018-02-11 18:20:10

    git에 보면 리셋 방법이 있는데요 그중에서도 hard가 있습니다

    reset hard 하는 방법 찾아보세요 커밋 메세지까지 날릴 수 있습니다

    1
  • kenu
    46k
    2018-02-11 18:30:47

    https://git-scm.com/book/ko/v1/Git-%EB%8F%84%EA%B5%AC-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%8B%A8%EC%9E%A5%ED%95%98%EA%B8%B0

    1
  • Be Head
    1k
    2018-02-11 18:31:05
    devjan
    님 프로필 사진 보고 깃헙 관계자 분이 답장 해주신 줄 알았어요 ㅋ
    1
  • devjang
    1k
    2018-02-11 18:32:44

    ㅋㅋㅋ관계자 아닙니다

    커밋메세지만 변경하는거였는데 실수했네요

    kenu님 말씀대로하면 되겠네요

    잘못된 정보를..!! 죄송합니다

    1
  • lllllllllllllll
    8k
    2018-02-11 19:06:43 작성 2018-02-11 22:32:53 수정됨

    혹시 깃허브 내에서 편집하는 방법도 있나요??

    사실 지금까지는 Git명령어 입력해서 써본 적이 없었거든요 허허헛

    0
  • Honowis
    347
    2018-02-12 01:40:34

    안타깝지만 이미 푸쉬한 커밋은 수정 하실 수가 없습니다.

    리누즈 토발즈의 말을 인용하면 '만약 메세지를 후에 수정 할 수 있도록 한다면 메세지의 신용도는 매우 떨어지기 때문이다.' 라는 이유이지요.


    앞으로 git 을 팀원들과 사용하실 일이 많으시면 이번 기회에 '깃 플로우' 전략을 적용 해 보시길 추천합니다.

    1
  • 서비스지향개발자
    7k
    2018-02-12 10:04:42

    Honowis

    리누즈 토발즈가 그런 말을 했나요? 깃을 누가만들었죠?.

    깃의 장점중 하나가 히스토리 관리인데 메세지를 후에 수정을 못하는건 말이 안됩니다.

    단순히 amend만해도 수정이 가능한데

    전문적인 게시판에 좀 그렇네요ㅡ

    1
  • 꾸아앙
    1k
    2018-02-12 14:39:29

    Honowis 님 말씀이 맞을텐데요?

    원격지에 푸쉬가 된 커밋은 수정이 불가능한걸로 알고 있습니다

    그리고 리누즈 토발즈 아저씨가 깃 만들었죠;

    1
  • 서비스지향개발자
    7k
    2018-02-12 14:51:07

    흠 제가 알기로는 푸시된 것은 수정 안하는게  좋다는 것이지 안된다는 것은 아닌걸로 알고있습니다.

    git에 대해서 말하고 있지만 github는 막아놓았는지 모르겠네요.

    정 안되면 rebase하면 되겠죠. 안되는건 아닙니다..

    커밋메세지에 신뢰도가 떨어진다는 말은 반감이 조금 생기네요. 프로젝트를 좀더 이해하기 쉽게 커밋 이력은 언제든 수정 가능해야합니다. 2~3개의 커밋을 하나로 합쳐야할수도 있고 반대로 나뉘기도 합니다.

    메세지 수정도 필요에 따라 프로젝트의 이해를 돕기 위해 수정할 수있습니다.

    신뢰도라는 것은 오픈소스에 국한해서 말한것이 아닌가 생각되네요..

    오픈소스는 이력이 바뀌면 신뢰도가 떨어지겠죠. 다시 분석 검증하기도 시간이 걸리고요.

    모든 프로젝트에 일반화 시키는건 아니라고 봅니다...

    깃을 그분이 만드셨군요.ㅎ

    1
  • Honowis
    347
    2018-02-12 16:15:30

    서비스지향개발자 님,

    amend 는 아직 로컬에서 푸쉬 하지 않았을 경우만 가능합니다.

    위 질문자 분의 경우에는 이미 푸쉬하여 해당 브랜치에 들어가 있는 상황입니다.


    사족이지만 amend 의 경우... 커밋 메세지 내용을 수정하는 용도로 사용할 수 있긴 하지만 주 용도는 커밋한 로컬 파일에 오류가 있을 경우에 수정하기 위해 사용하는 명령어지요.

    rebase 도 이와 같은 경우는 소용이 없습니다. 이미 해당 브랜치가 모든 커밋을 가지고 있기 때문이죠. 정 커밋을 지워야 한다면 하드리셋을 하고 새 브랜치를 만들어 푸쉬 하는 방법 밖에는 없지만, 이렇게 되면 다른 팀원들이 새 브랜치로 옮겨 가야 한다는 이야기가 됩니다. 커밋 메세지 때문에 굳이 이렇게 까지 할 이유는 없다고 봅니다. 


    그리고 위에 히스토리를 언급하셨는데, 오픈소스던 내부 개발이건 모두에게 공개된 커밋 메세지를 나중에 바꾼다는건 공유된 기록을 바꾼다는 것이기 때문에 모두를 혼란에 빠트리게 됩니다. 예를 들어 누가 악의적으로 한달전에 커밋된 100 개의 메세지를 몽땅 다 엉터리로 바꿔 버린다면 큰 손실이죠.


    깃은 버전 콘트롤로써 널리 이용되지만, 주 목적은 개발자들이 빠르고 간결하게 협업 할 수 있도록 고안된 툴 입니다. 

    대부분의 깃 환경을 갖춘 회사들이 그렇듯 풀 리퀘스트를 하고 리뷰어를 붙여서 코드 리뷰를 하며 내가 미쳐 찾지 못했던 버그나 혹은 더 나은 코드를 서로 공유하도록 설계 되어 있죠. 이를 통해 개발자들이 자연스럽게 소통 하며 서로 발전 해 나가는 것 입니다.


    그리고 이건 리누즈 토발즈가 Modify/edit old commit messages 이라는 메일에 회신한 내용 입니다. 

    http://www.gelato.unsw.edu.au/archives/git/0702/38650.html


    1
  • 아이두
    77
    2018-02-13 08:38:07

     모든 팀원들에게 동의를 구하고 force push 하는 방법이 있습니다 git hub에서가능한지는 모르겠습니다



    1
  • lllllllllllllll
    8k
    2018-02-13 09:36:38

    팀원들은 깃허브 어렵다고 안쓰더라고요... 저도 개발툴이랑 연동시키고 브랜치 만드는 것까지만 합니다ㅋ 

    근데 윗분들 말을 들어보면 Git에 직접 명령어 입력해서 쓰시는 분들도 많은것 같은데 Git을 고치면 깃허브에도 자동으로 반영이 되나보네요

    0
  • 서비스지향개발자
    7k
    2018-02-19 16:36:31

    //Honowis amend는 예시로 든 것이고 방법이 있다고 말하는 것입니다. 

    뭐 싸우고 싶지는 않네요. 그럼 이만.. 글좀 잘 읽어주시길..

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.