git에서 pull 혹은 check out으로 덮어쓰기

조회수 9356회

같은 프로젝트 하에서 2명이 따로 작업을 하였습니다. 제가 다른 한사람의 git에 올라온 소스를 받으려고 합니다. 이때 소스명만 같고 내용은 서로 많이 달라진 상태입니다. 또한 소스 파일 자체의 유무로도 변경이 있습니다. 시작은 같은 프로젝트였지만 지금은 40% 정도는 다른 프로젝트로 보시면 되겠습니다. 이럴 때 git에서 pull이나 check out 명령어로 완전히 덮어쓰기를 할 수 있는지 아니면 차라리 기존 로컬 소스를 전부 지우고 pull을 할 수 밖에 없는지 알고 싶습니다. 그냥 로컬의 소스를 지우고 해도 되지만 덮어쓰기를 했다는 것도 이력에 남기고 싶어서 문의를 드립니다.

  • 로컬에서 커밋만 하고 pull을 한번도 안한 상태이신건가요? 알 수 없는 사용자 2016.6.16 00:05
  • 네 맞습니다. Jongkook 2016.6.16 00:32

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    같은 브랜치에서 작업하셨다면 그냥 pull하시면 됩니다. pull을 하면 본인이 수정한 파일들과 달라진 부분들이 모두 conflict 날텐데요. merge를 잘 하시고 커밋한 후 push 하시면 됩니다. 만약 다른 브랜치에서 작업하신거라면 pull받고 본인이 작업한 브랜치를 merge 하시고 push 하시면 되요.

    git 툴을 어떤것을 사용하시는지는 모르겠으나, sourceTree를 이용하시면 쉽게 conflict를 해결하실 수 있어요.

    conflict 난 파일들은 아래 첨부파일에서처럼 세모표시가 나는데 내 파일로 merge를 할거면 Resolve Using 'Mine' 서버에서 가져온 파일로 할거면 Resolve Using 'Theirs'를 하면 알아서 자동 머지가 됩니다.

    아니면 둘다 적절하게 머지를 해야하는 경우는 에디터로 직접 머지를 한후에 Mark Resolved를 누르시면됩니다.

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 기록을 남기고 싶다면 손머지.. 직접하거나 @송주연님이 말하신데로 툴의 도움을 이용한 머지를.. 화이팅! 알 수 없는 사용자 2016.6.16 13:35
    • 이력이 필요없으시면 git reset --hard origin/브랜치명 하시면 됩니다. 단 본인의 커밋도 날라갑니다. 알 수 없는 사용자 2016.6.16 13:37
    • 답변 감사드립니다. 소스트리는 얘기만 들어봤는데 이번 기회에 사용해볼게요. Jongkook 2016.6.16 17:19

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)