원격 저장소
5. 자주 하는 실수 (Tip)
❌ 실수 1. push 없이 로컬 커밋만 하고 다 됐다고 착각
로컬 커밋은 내 컴퓨터에만 있습니다. push 를 해야 원격에 반영되고 동료가 볼 수 있습니다. 커밋 후 git status 의 ahead 표시로 확인하는 습관을 들입니다.
❌ 실수 2. fetch 하면 코드도 바뀌는 줄 알기
fetch 는 원격 추적 브랜치만 갱신하고 작업 트리는 그대로 둡니다. 코드까지 반영하려면 pull 이나 merge·rebase 가 따로 필요합니다.
❌ 실수 3. non-fast-forward 거부를 --force 로 뚫기
거부는 원격에 내가 모르는 커밋이 있다는 경고입니다. --force 로 뚫으면 동료의 커밋이 통째로 사라질 수 있습니다. fetch 후 merge·rebase 로 합치는 것이 정석입니다.
❌ 실수 4. force 와 force-with-lease 를 같은 것으로 취급
--force 는 무조건 덮어쓰고 --force-with-lease 는 내가 아는 원격 상태와 다르면 거부합니다. 혼자 쓰는 개인 브랜치가 아니라면 항상 --force-with-lease 를 씁니다.
❌ 실수 5. bare 저장소에서 파일을 편집하려 하기
bare 저장소는 작업 트리가 없어서 파일을 직접 열어 고칠 수 없습니다. clone 해서 작업하고 다시 push 하는 방식으로 씁니다.
❌ 실수 6. push -u 없이 매번 원격·브랜치 이름을 타이핑
추적을 설정하지 않으면 매번 git push origin main 처럼 다 써야 합니다. 처음 push 할 때 -u 를 주면 이후에는 git push 만으로 충분합니다.
❌ 실수 7. 삭제된 원격 브랜치를 fetch --prune 없이 방치
원격에서 지운 브랜치가 로컬에는 원격 추적 브랜치로 계속 보입니다. git fetch --prune 을 하지 않으면 이미 없는 브랜치를 있는 것처럼 착각합니다.
❌ 실수 8. bundle 을 --all 없이 만들어 일부만 반입
기본값은 현재 브랜치만 담습니다. 다른 브랜치나 태그까지 반입하려면 --all 을 반드시 붙입니다.
❌ 실수 9. bundle 로 반입 후 verify 를 건너뛰기
파일이 손상되거나 필요한 커밋이 빠지면 clone 단계에서야 오류를 발견합니다. git bundle verify 로 미리 완전성을 확인하면 반입 후 문제를 줄입니다.
❌ 실수 10. ssh 주소로 clone 하면서 ssh 키를 등록하지 않기
git@서버:경로 형식은 ssh 키 인증이 전제입니다. 키가 없거나 서버에 공개키를 등록하지 않으면 인증에서 막힙니다. https 주소와 토큰 방식이 더 간단할 때도 있습니다.