Git 상태는 깨끗한데 왜 GitHub에 반영이 안될까?

jul ee·2025년 4월 21일

데이터 성장기

목록 보기
58/139

프로젝트를 정리한 뒤 GitHub에 올리려고 했을 뿐인데, 아무런 커밋 내역도 없는 텅 빈 저장소를 마주하게 되었다.

처음엔 “버근가?”, “내가 뭔가 빼먹었나?” 싶었고, 캐시 문제인가 하는 의심까지 들었다.

해결하고 보니 그 원인은 아주 단순하고도 깃허브의 본질적인 부분이었다.

이 글은 Git을 쓰는 누구나 한 번쯤 마주치는 당황스러운 순간과 그 원인을 살펴보고 해결하는 과정을 다루고 있다. 사소해 보이지만 절대 가볍지 않은 문제이기 때문에 점검해두면 분명히 도움이 될 것이다.




문제 상황

최근 개인 프로젝트의 필사 결과물을 정리하고 나서, 이를 GitHub 저장소에 정리된 형태로 반영하려고 했을 때였다.

기능 개발이 필요한 게 아니라, 단순히 필사 과정을 기록해 두는 저장소라서 '과거의 나, 굳이 다른 브랜치를 파지 않았겠지?ㅋ' 라는 생각으로 바로 main 브랜치로 푸시한 상황이었다.


그런데

분명히 main 브랜치로 푸시했는데.. GitHub 저장소를 확인해 보니 커밋 내역이 업데이트되지 않는 것이다.

“분명 커밋도 다 했고, git push origin main도 했는데 왜 GitHub에 아무것도 안 뜨는 거지?”



원인 분석

혹시 내가 놓친 부분이 있을까봐 로그를 처음부터 꼼꼼하게 확인해 보았다. 이때까지는 문제의 원인을 발견하지 못했다.


푸시를 했는데도 깃헙 저장소에 변경 사항이 나타나지 않는다면 로컬의 작업 내역에 여전히 변경 사항이 남아 있을까? 그런데 만약 작업 폴더가 깨끗하다면 내 작업물은 어디로 푸시되어 있는 걸까?

라는 생각으로 로그를 더 살펴보았는데 이번에는 그 원인을 찾아낼 수 있었다.

현재 브랜치를 feat/1-titanic-tutorial 로 명시하고 있는데 이걸 확인하지 않고 넘겼던 것이다 😣


문제의 원인을 정리해 보자면,

1. 커밋은 feature 브랜치에 있었다

작업과 커밋은 모두 feature-titanic 브랜치에서 진행했는데,
안일하게도.. 브랜치를 확인하지 않고 커밋 내역을 바로 main 브랜치로 푸시한 것이다.

2. main 브랜치는 실제로 변경된 게 없었다

$ git status

On branch main
nothing to commit, working tree clean

확인 결과, “변경사항이 없으니까 푸시도 필요 없겠네” 라고 오해하기 쉽다.

하지만 실제로는 커밋 자체가 다른 브랜치(feat)에 있었기 때문에, main 브랜치에는 아무것도 달라진 게 없었던 것이고

그렇기 때문에 푸시를 해도 아무것도 반영되지 않은 것이다.



해결 방법

현재 위치한 feat 브랜치에서 main 브랜치로 이동한 후,
feat 브랜치의 커밋을 main으로 병합해야 한다.

  1. main 브랜치로 이동
    git checkout main
    
  1. feature 브랜치의 커밋을 main에 병합
    git merge feature-titanic
    
  1. 병합된 내용을 원격 main 브랜치에 푸시
    git push origin main
    

이제 변경 사항이 GitHub main 저장소에 무사히 반영된 것을 확인할 수 있었다.



💡 이 경험을 통해 얻은 인사이트

커밋은 브랜치에 저장된다

Git은 파일 단위가 아닌 브랜치 기준으로 변경사항을 추적한다.

아무리 많은 커밋을 해도, 그것이 main 브랜치에 병합되지 않았다면 main에는 아무 일도 없는 것이다.


git status는 현재 브랜치 기준이다

작업 디렉토리에 변경사항이 없다고 해서 전체 저장소에 변경사항이 없는 건 아니다.

git loggit branch --merged 등을 통해 병합 여부를 확인해야 한다.


협업/개발 시 브랜치 전략과 병합 타이밍이 중요하다

이 문제는 혼자 작업할 때도 충분히 혼란스럽지만, 협업 상황에서는 더 큰 문제로 이어질 수 있다.

아무리 별 거 없는 사소한 저장소라도 PR을 통해 병합 과정을 명시적으로 관리하는 습관이 중요하다. 예전에는 이런 습관이 과하고 유난인 거 아닌가 하는 생각을 했었는데 전혀 그렇지 않은 이유를 이번에 실감하게 되었다. 혼자 하는 사이드 프로젝트일수록 브랜치 전략에 대해 느슨해지기 쉽지만, 그럴수록 오히려 이런 사소한 실수가 더 자주 발생한다는 것도 함께 배웠다.




사소해 보이는 문제였지만, Git의 작동 원리를 정확히 이해하지 않으면 누구나 한 번쯤 겪을 수 있는 상황이라고 생각한다. 작업은 했는데 왜 GitHub에 아무것도 안 보이는지 답답해하는 누군가에게 도움이 되었으면 한다.

혹시 깃 상태는 깨끗한데 GitHub는 텅 비어있다면, 브랜치 안에 커밋이 남겨져 있는 건 아닌지 다시 한 번 확인해 보자.

아무리 사소해 보이는 작업이라도 Git 브랜치의 흐름을 명확히 인지하고 작업하는 것이 얼마나 중요한지 다시 한 번 실감했다. Git 상태가 깨끗하다고 방심하지 말고, 브랜치 안의 커밋이 어디로 향하고 있는지를 꼭 확인하자.

💡 작업 전에 로그 한 번, 푸시 전에 브랜치 한 번, 병합 전에는 반드시 방향 한 번 !

profile
AI에 관심을 가지고, 데이터로 가치를 만들어 나가는 과정을 기록합니다.

0개의 댓글