Git · GitHub
Git / GitHub
Git이란?
- Git=코드 변경 이력 관리
- GitHub=온라인 보관·협업
- 되돌리기·협업의 기본
Git을 쓰기 시작하면 팀의 파일 관리 습관부터 바뀝니다. '앱_최종.py', '앱_최종_진짜최종.py'처럼 복사본을 늘려 두던 방식 대신, 파일은 하나로 두고 변경 이력만 아래로 쌓입니다. 누가 언제 어느 줄을 왜 고쳤는지가 커밋 메시지와 함께 남으니, 사고가 나도 추궁이 아니라 기록 조회의 문제로 정리됩니다. 혼자 만든 코드를 남에게 넘길 때도 이력 자체가 인수인계 자료가 됩니다.
Git과 GitHub는 한 단어처럼 붙어 다니지만 층이 다릅니다. Git은 내 노트북에서 도는 프로그램이고, GitHub는 그 결과물을 올려 두는 서버입니다. 같은 자리에 GitLab이나 Bitbucket을 쓰는 회사도 많습니다. 실무에서 필요한 개념은 넷입니다 — 커밋(저장 지점), 브랜치(본줄기를 건드리지 않는 작업용 갈래), 풀 리퀘스트(합치기 전 검토 요청), 머지(합치기). 저장소는 공개와 비공개 중 반드시 골라야 하고, 파일 하나당 100MB 제한이 있으며, 엑셀·이미지 같은 바이너리는 변경분 비교가 되지 않아 코드와 설정 파일 위주로 담는 편이 낫습니다.
AI로 코드를 만드는 상황에서는 커밋 단위가 곧 실험 단위입니다. 한 번에 기능 다섯 개를 시키고 커밋을 한 번만 남기면 어느 요청이 문제를 일으켰는지 가려낼 수 없으니, 요청 하나에 커밋 하나를 원칙으로 잡는 편이 안전합니다. GitHub 저장소는 배포 서비스와 바로 연결되기도 해서, 코드를 올리는 순간 실제 화면이 갱신되는 구조를 만들 수 있습니다. 이때는 올리는 행위가 곧 배포이므로 검토 없이 밀어 넣지 않는 습관이 필요합니다.
현장에서 가장 잦은 사고는 API 키나 DB 비밀번호를 코드에 적은 채 커밋해 공개 저장소에 올리는 일입니다. 나중에 파일에서 지워도 과거 커밋 안에는 그대로 남아 있어, 이력을 몇 줄만 뒤지면 다시 나옵니다. 두 번째 오해는 '깃허브에 올렸으니 백업은 끝났다'입니다. 커밋만 하고 push하지 않으면 그 기록은 여전히 노트북 안에만 있고, 기기가 고장 나면 함께 사라집니다. 세 번째는 커밋 메시지를 전부 '수정'으로 채우는 습관인데, 돌아갈 지점을 찾지 못하면 쌓아 둔 이력도 없는 것과 마찬가지입니다.
Git은 리눅스를 만든 리누스 토르발스(Linus Torvalds)가 2005년 리눅스 커널 개발을 위해 만들었습니다. GitHub는 2008년 출시돼 세계 최대의 코드 협업 플랫폼이 됐습니다.
가상의 사례로 살펴보겠습니다. 임직원 38명, 연매출 약 120억 원의 산업용 부품 유통 A사입니다. 재고 담당 김 대리가 바이브 코딩으로 '창고별 재고 조회 웹앱'을 3주째 혼자 만들고 있었는데, 바탕화면 복사본이 27개까지 늘어났습니다. 어느 날 잘 돌던 버전을 실수로 덮어쓰면서 이틀치 작업이 통째로 날아갔습니다.
- 사고 다음 날 김 대리가 IT 담당 박 차장에게 'AI가 코드를 통째로 갈아엎으면 되돌릴 방법이 없습니다'라고 털어놓자, 박 차장이 노트북에 Git을 설치하고 한 시간 동안 커밋 남기는 법만 가르쳤습니다.
- 김 대리는 화면이 정상 동작하는 순간마다 '창고별 재고 목록 조회 정상' 같은 문장으로 커밋을 남겼고, 첫 주에만 저장 지점이 41개 쌓였습니다.
- AI에게 '엑셀 내보내기 기능을 추가해줘'라고 시켰다가 조회 화면까지 깨졌을 때, 명령 두 줄로 20분 전 커밋으로 돌아가 작업 손실이 0이 됐습니다.
- GitHub에 비공개 저장소를 만들어 퇴근 전 push하기로 했는데, 박 차장이 코드에 박혀 있던 창고 DB 접속 비밀번호를 먼저 발견해 환경변수로 빼낸 뒤에야 첫 업로드를 했습니다.
- 석 달 뒤 영업팀 이 과장이 합류해 브랜치를 나눠 작업하면서, 복구에 쓰던 시간이 주 4시간에서 20분으로 줄고 수정 요청 처리 기간은 평균 5일에서 1일로 짧아졌습니다.