홈 › Git › 07 / 8

협업 규칙

섹션 7진행 0 / 8

5. 자주 하는 실수 (Tip)

❌ 실수 1: core.autocrlf 를 팀원마다 다르게 둠

한 사람은 true, 한 사람은 input 이면 같은 파일이 사람마다 다른 줄 끝으로 커밋됩니다. 저장소에 .gitattributes 를 두고 모두 core.autocrlf false 로 맞춥니다.

❌ 실수 2: .gitattributes 를 나중에 추가하고 기존 파일을 그대로 둠

.gitattributes 는 이후에 손대는 파일에만 적용됩니다. 기존 파일까지 맞추려면 git add --renormalize . 로 한 번 재정규화해야 합니다.

❌ 실수 3: 커밋 메시지에 "수정", "업데이트"만 씀

몇 달 뒤 git log 를 봐도 무엇을 왜 바꿨는지 알 수 없습니다. fix: 로그인 실패 시 재시도 로직 추가 처럼 대상과 내용을 구체적으로 적습니다.

❌ 실수 4: 훅을 .git/hooks 에만 두고 커밋하지 않음

.git/hooks 는 clone 해도 넘어오지 않습니다. 저장소 안 .githooks/ 에 두고 core.hooksPath 로 가리켜야 팀 전체에 적용됩니다.

❌ 실수 5: pre-commit 훅에서 exit 코드를 안 챙김

훅 마지막 줄에서 항상 exit 0 으로 끝나는 명령이 있으면 앞의 검사 결과와 무관하게 항상 통과합니다. 검사 결과를 변수에 모아 마지막에 exit $bad 로 명시해야 합니다.

❌ 실수 6: .gitignore 에 추적 중인 파일을 추가하고 안 사라진다고 착각

.gitignore 는 아직 추적하지 않는 파일에만 작동합니다. 이미 커밋된 파일은 git rm --cached 로 먼저 추적을 해제해야 합니다.

❌ 실수 7: 브랜치 전략을 정하지 않고 즉흥적으로 브랜치를 남발

이름 규칙 없이 브랜치가 쌓이면 어느 것이 살아 있는 작업인지 구분이 안 됩니다. 팀 규모에 맞는 전략과 이름 규칙을 문서로 먼저 정합니다.

❌ 실수 8: PR 을 너무 크게 묶어서 리뷰를 미룸

변경 줄 수가 크면 리뷰어가 부담스러워 미루기 쉽습니다. 기능 단위로 작게 쪼개 자주 병합하는 편이 전체 속도가 더 빠릅니다.

❌ 실수 9: merge=ours 를 아무 파일에나 적용

merge=ours 는 상대 브랜치의 변경을 무조건 버립니다. 실제 소스 코드에 적용하면 동료의 수정이 조용히 사라집니다. 자동 생성 파일에만 씁니다.

❌ 실수 10: rerere 를 안 켜서 같은 충돌을 반복 해결

리베이스나 병합을 반복하며 같은 파일이 계속 충돌하면 매번 같은 방식으로 손으로 고쳐야 합니다. rerere.enabled true 를 켜면 이전에 푼 방식을 git 이 기억해 자동으로 적용합니다.