호호하하하하
528
2021-04-05 14:09:58
10
552

깃에 예전 commit내용을 변경 할 수 있나여??


깃에 예전 commit내용을 변경 할 수 있나여??

0
  • 댓글 10

  • Ananya
    869
    2021-04-05 14:12:10

    직전 commit 내용은 변경할 수 있습니다.

    git commit --amend 

    하시면 직전 커밋을 변경할 수 있도록 창이 열리니 거기서 변경하시면 됩니다.

    commit id가 바뀌니, 이미 push 하셨다면 push -f 로 덮어쓰셔야 합니다.

  • 호호하하하하
    528
    2021-04-05 14:15:23

    직전 commit 아니고 한 1년 전 정도의 commit은 못바꾸나요

    /???

  • Ananya
    869
    2021-04-05 14:23:52

    @호호하하하하

    git revert 로 옛날 commit 이력의 내용을 되돌리는 것은 가능합니다만 이력을 변경하는 것은 불가능합니다. 형상 관리를 하는 도구인데 옛날 이력까지 멋대로 수정할 수 있으면 그것은 그것대로 문제일테니까요.

  • 기러우
    54
    2021-04-05 14:34:43

    https://homoefficio.github.io/2017/04/16/Git-%EA%B3%BC%EA%B1%B0%EC%9D%98-%ED%8A%B9%EC%A0%95-%EC%BB%A4%EB%B0%8B-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0/

  • Ananya
    869
    2021-04-05 14:42:11

    위에 기러우 님이 남겨주신 내용은 rebase 사용하는 방식인데요. rebase는 commit 이력을 하나씩 따라가면서 변경 내용을 추적 후 순차적으로 하나씩 병합하며 커밋 아이디를 새로 땁니다. 그러니 저 방법 사용하면 억지로라도 1년 전의 이력을 고치는 건 되는데, 문제는 그 이후 이력 부터는 똑같은 변경 분에 대해 새 커밋 아이디로 덮어쓰게 되는 겁니다.

    위에 링크 글도 언급했지만 이 방법 쓰실 경우 같이 일하는 사람들은 1년간의 작업 내용 전체에 충돌이 발생했다고 뜰 겁니다. 그 때문에 그 충돌을 해결하려면 남들이 고생 좀 해야 하는 거죠...

    혼자 작업하시고 계시면 기러우님이 달아주신 방법 쓰시면 될 거 같습니다.

    회사 코드라든지 타인과 협업하고 있다면 그냥 지금 버전에서 수정하고 새 커밋 따시는 걸 강력하게 추천합니다.

  • 흰띄1그랄
    232
    2021-04-05 15:10:46

    -f 하면 끼에엑....

  • 천사와악마
    841
    2021-04-05 15:22:30

    -f 하시면 IT판 스타워즈 찍으실거에여, 포스가 함께하실듯... 

  • newchaos
    12
    2021-04-05 16:43:35

    윗분들 말대로하면 엿되기 딱좋으니까 클론 새로 받으시고 해당 커밋으로 브랜치 따신 다음에 거따가 작업하시고 현재 버전에 반영될 부분만 수동으로 고쳐서 반영하세요.


    https://myhappyman.tistory.com/99

  • Dive_Drink_Develope
    5k
    2021-04-05 18:30:15

    1년전에 심은 버그로 추궁을 당할 위기에 처한건가여.... 누적손해액이..ㅎㄷㄷ하다던가?

  • Ananya
    869
    2021-04-05 19:56:56

    amend 하고 나서 push 할 때 -f 로 하라는 건... 각 개발자가 각자의 feature branch 로 작업하고 develop 에 머지하는 git flow 정책을 엄격하게 가져가는 상황에서 자기 브랜치만 대상으로 하는 걸 전제로 합니다. 남과 협업하는 브랜치거나 develop/master 브랜치에는 절대 그렇게 하시면 안 됩니다. 노파심에 자꾸 들여다보며 댓글 달게 되네요.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.