https://xe1.xpressengine.com/tip/22947921

 

이 문서를 보고 준비를 해 보려고 합니다.

 

궁금증이 처음부터 생기는데요.

 

 git clone https://github.com/xpressengine/xe-core.git

 

이렇게 만든 xe-core 폴더는 문서에서 말하는 폴더와 파일을 복사한 후 지워도 되는거죠 ?

 

그리고  git status  라는 명령어를 입력하면 굉장히 많은 목록이 뜰 거 같은데요. 제가 수정한 것도 있을것이고 구매해서 업로드한 파일도 있을 것이고 해서요.

 

목록은 그냥 체크해서 다른 부분이 있다라고 보여주는 것으로 그냥 보기만 해도 되는건가요?

다음에 실제 코어업데이트시에  git pull  ? 이 명령어로 업데이트 된 내역을 적용할때 이 목록들이 방해를 하지 않는지 궁금합니다.

 

 

  • ?
    코어를 커스텀하지 않으셨다면 문제될게 없겠지만 커스텀하셨다면 좀 골치아프실겁니다. xe-core 폴더를 지우시는게 아니라 해당 폴더에 덮어씌워서 운영하시는게 가장 좋겠죠.
  • ? Lv30
    xe-core 를 복제한 건 git으로 관리하기 위한 기준점을 만들기 위해 했던 작업 아닌가요 ? 거기서 만들어진 관리파일과 폴더는 실제 운영폴더로 복사하라고 문서에 나와 있는데요.... 제가 이해를 어떻게 잘못 하고 있는건지...
  • ? Lv30
    그리고 수정된게 너무 많아서 git으로 편하게 하려는건데 골치만 아프다면... 윽....
  • Lv30 ?
    회사라서 링크를 못봤는데 이제봤네요.

    말씀하신대로 git으로 관리하기위한 기준점이 맞구요. 거기서 기진곰님이 말씀하신 폴더와 파일만 옮겨주시면 됩니다.
    git status는 단지 바뀐 파일들 목록(A - 추가 M - 변경 D - 삭제됨)을 표시해주는것이 맞구요.
  • ? Lv30

    그럼 이렇게 기초작업만 해두고 나중에 git pull 이라는 명령어로 업데이트된 것을 가져오더라도 바뀐목록이 많아도 문제가 될 것은 없고 새로 바뀐 내역들만 적용할 수 있는거죠 ?

     

    xe-core 폴더도 지워도 되구요 ?

  • Lv36

    수정한 것이 별로 없을 때는 위에 링크된 글에 적어둔 정도만 해도 됩니다. 그러나 수정한 것이 많다면...

     

    git 적용 직후에 변경내역을 파악해서 git add / git commit으로 커밋하셔야 합니다. git은 모든 데이터를 커밋 기준으로 정리하기 때문에, git status에 커밋하지 않은 것이 많이 나오는 상태에서 나중에 pull하면 충돌이 발생할 가능성이 매우 높아요. 뭐 하나라도 바꾸고 나면 당장 커밋을 만드는 것이 좋습니다.

     

    또 한가지... 처음 적용하려고 하면 엄청나게 많은 파일이 변경되었다고 나오는데, 위에 링크된 글에서 안내하는 것처럼 core.fileMode false 설정을 해도 여전히 많은 파일이 변경되었다고 한다면 줄바꿈 문자 차이(윈도우: CRLF, 유닉스: LF) 때문일 가능성이 높습니다. git의 core.autocrlf 설정은 이 상황에서 도움이 되지 않습니다. dos2unix 유틸리티를 사용해서 줄바꿈 문자를 유닉스 스타일로 통일하면 불필요한 변경분이 대부분 사라집니다.

     

    불필요한 변경분을 제거하는 것이 중요한 이유는, 줄바꿈 문자가 다르면 파일 전체가 변경되었다고 나오기 때문입니다. 파일 전체가 변경된 상태에서 커밋을 해버리면 나중에 일부가 다시 변경되었을 때 변경분을 정확하게 파악하지 못해서 충돌이 발생합니다. 따라서 줄바꿈 문자 때문에 발생하는 불필요한 변경분은 미리 제거한 후에 커밋하는 것이 좋아요.

     

    처음엔 좀 귀찮긴 한데, 일단 git으로 바꿔놓으면 웬만한 업데이트는 10초도 안 걸리는 신세계를 맛볼 수 있습니다^^

  • Lv36 Lv30
    한가지 더 여쭙겠습니다. 제외하고 싶은 폴더를 지정해 두면 도움이 많이 될까요 ?? 제외하는 것은 결국 코어에 포함되지 않는 녀석들일 텐데요. 어차피 업데이트때 땡겨와도 이 녀석들은 포함되어 있지 않아 제가 수정하는 부분에서만 영향을 받긴 할텐데요. 이녀석들때문에 변경된 코어가 적용이 안되고 할 수 있나요 ?

    제외 범위를 어떻게 결정해야 하나요 ?
  • Lv36 Lv30
    준비작업을 마친 후 git status 로 여러 파일들이 변경된 파일이라고 표시해 주고 있어도 이때 커밋을 한번해주면 이 상태로 마무리가 되고 다음에 코어 업데이트때 별로 영향을 받지 않는다는 말씀이신거죠 ?

    커밋이란 것만 한번 해주면 될까요 ?
  • Lv30 Lv36
    코어가 아닌 것은 모조리 제외시켜 놓으면 편하지요. 추가로 설치한 애드온, 모듈, 스킨, 레이아웃 등등... 처음 git status 했을 때 untracked files라고 나오는 것들을 쫙 긁어서 복사해 놓고 살펴보시면 됩니다.

    보통 제외할 파일이나 폴더는 .gitignore에 추가하면 됩니다만, 이 파일도 코어에서 가끔 업데이트되기 때문에 충돌이 일어날 수 있습니다. .git/info/exclude에 추가하면 가장 확실해요.
  • Lv30 Lv36
    git add -A .
    git commit -m "커밋 메시지"

    이렇게 해주시면 됩니다만, 위에서 말씀드린 것처럼 줄바꿈 문자 때문에 불필요한 변경분이 발생하면 나중에 귀찮아지니 주의하세요.
  • Lv15
    좀 복잡하시겠네요..;