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


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

  • 2016년 06월 15일에 작성됨

  • 로컬에서 커밋만 하고 pull을 한번도 안한 상태이신건가요?    송주연   2016.6.16 00:05     
  • 네 맞습니다.    Jongkook   2016.6.16 00:32     
조회수 428


1 답변


좋아요
2
싫어요
채택취소하기

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

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

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

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

이미지

  • 2016년 06월 16일에 작성됨
    안드로이드, 루비온레일즈

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

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close