https://xe1.xpressengine.com/tip/22947921
이 문서를 보고 준비를 해 보려고 합니다.
궁금증이 처음부터 생기는데요.
git clone https://github.com/xpressengine/xe-core.git
이렇게 만든 xe-core 폴더는 문서에서 말하는 폴더와 파일을 복사한 후 지워도 되는거죠 ?
그리고 git status 라는 명령어를 입력하면 굉장히 많은 목록이 뜰 거 같은데요. 제가 수정한 것도 있을것이고 구매해서 업로드한 파일도 있을 것이고 해서요.
목록은 그냥 체크해서 다른 부분이 있다라고 보여주는 것으로 그냥 보기만 해도 되는건가요?
다음에 실제 코어업데이트시에 git pull ? 이 명령어로 업데이트 된 내역을 적용할때 이 목록들이 방해를 하지 않는지 궁금합니다.
댓글 11
말씀하신대로 git으로 관리하기위한 기준점이 맞구요. 거기서 기진곰님이 말씀하신 폴더와 파일만 옮겨주시면 됩니다.
git status는 단지 바뀐 파일들 목록(A - 추가 M - 변경 D - 삭제됨)을 표시해주는것이 맞구요.
그럼 이렇게 기초작업만 해두고 나중에 git pull 이라는 명령어로 업데이트된 것을 가져오더라도 바뀐목록이 많아도 문제가 될 것은 없고 새로 바뀐 내역들만 적용할 수 있는거죠 ?
xe-core 폴더도 지워도 되구요 ?
수정한 것이 별로 없을 때는 위에 링크된 글에 적어둔 정도만 해도 됩니다. 그러나 수정한 것이 많다면...
git 적용 직후에 변경내역을 파악해서 git add / git commit으로 커밋하셔야 합니다. git은 모든 데이터를 커밋 기준으로 정리하기 때문에, git status에 커밋하지 않은 것이 많이 나오는 상태에서 나중에 pull하면 충돌이 발생할 가능성이 매우 높아요. 뭐 하나라도 바꾸고 나면 당장 커밋을 만드는 것이 좋습니다.
또 한가지... 처음 적용하려고 하면 엄청나게 많은 파일이 변경되었다고 나오는데, 위에 링크된 글에서 안내하는 것처럼 core.fileMode false 설정을 해도 여전히 많은 파일이 변경되었다고 한다면 줄바꿈 문자 차이(윈도우: CRLF, 유닉스: LF) 때문일 가능성이 높습니다. git의 core.autocrlf 설정은 이 상황에서 도움이 되지 않습니다. dos2unix 유틸리티를 사용해서 줄바꿈 문자를 유닉스 스타일로 통일하면 불필요한 변경분이 대부분 사라집니다.
불필요한 변경분을 제거하는 것이 중요한 이유는, 줄바꿈 문자가 다르면 파일 전체가 변경되었다고 나오기 때문입니다. 파일 전체가 변경된 상태에서 커밋을 해버리면 나중에 일부가 다시 변경되었을 때 변경분을 정확하게 파악하지 못해서 충돌이 발생합니다. 따라서 줄바꿈 문자 때문에 발생하는 불필요한 변경분은 미리 제거한 후에 커밋하는 것이 좋아요.
처음엔 좀 귀찮긴 한데, 일단 git으로 바꿔놓으면 웬만한 업데이트는 10초도 안 걸리는 신세계를 맛볼 수 있습니다^^
제외 범위를 어떻게 결정해야 하나요 ?
보통 제외할 파일이나 폴더는 .gitignore에 추가하면 됩니다만, 이 파일도 코어에서 가끔 업데이트되기 때문에 충돌이 일어날 수 있습니다. .git/info/exclude에 추가하면 가장 확실해요.
커밋이란 것만 한번 해주면 될까요 ?
git commit -m "커밋 메시지"
이렇게 해주시면 됩니다만, 위에서 말씀드린 것처럼 줄바꿈 문자 때문에 불필요한 변경분이 발생하면 나중에 귀찮아지니 주의하세요.