최근 개발공부를 하면서 깃허브 레포지터리 리스트가 난장판이 되었다.
그래서 사용하지 않는 레포지터리를 과감하게 삭제하는 시간을 가졌다.
그런데, 열심히 심은 깃 커밋 잔디가 같이 뿌리뽑혔다.
오늘은 뿌리 뽑힌 커밋 잔디를 심고, 레포지터리도 정리하는 방법을 알아보자.

잔디가 사라진 이유
GitHub의 기여도 그래프(일명, 깃 커밋 잔디)는 현재 존재하고 있는 레포지토리의 커밋 내역을 기반으로 실시간으로 계산된다고 한다.
즉, 레포지토리를 삭제하면 해당 프로젝트에서 쌓았던 커밋 기록들이 그래프에서 제외되고 마는 것이다.
잔디를 유지하면서 레포지터리를 정리할 수 있을까
위 제목의 내용을 달성하기 위해 내가 취한 전략은 다음과 같다.
1. 안 쓰는 레포지토리들을 하나로 합쳐서 '잔디 유지용 아카이브'를 만든다.(프로필 깔끔하게 정리하여 심리적 만족감)
2. 커밋 히스토리까지 합치는 작업을 통해 기존 커밋 기록 유지한다.
- 단순히 파일을 복사해서 옮기는 것은 커밋 기록을 유지하지 못하기 때문에 Branch전략을 택했다.
[방법] 히스토리 유지하며 레포지터리 병합
1. 새로운 Private 레포지터리 생성(과잉된 나의 자의식을 위한 것: 남에게 깔끔하게 잘보이기)
- 난 Github에서 "legacy-archive"라는 이름의 비공개 저장소를 만들었다.
2. 로컬에서 병합 작업 진행
# 1. 아카이브 레포지토리 클론
git clone https://github.com/사용자명/legacy-archive.git
cd legacy-archive
# 2. 합치고 싶은 기존 레포지토리를 원격지로 추가
git remote add old-project https://github.com/사용자명/old-project.git
git fetch old-project
# 3. 히스토리를 유지하며 병합 (기존 프로젝트의 메인 브랜치가 main인 경우)
git merge old-project/main --allow-unrelated-histories
# 4. (선택 사항) 폴더를 정리하고 싶다면 옮긴 후 커밋
mkdir old-project-folder
# 파일들을 해당 폴더로 이동시킨 후...
git add .
git commit -m "Merge: old-project added to archive"
# 5. 최종 푸시
git push origin main
3. 반복 (다른 레포지토리들도 위 과정을 반복해서 하나로 모은다)
- Tip. 다만, 원격지 이름은 다르게 해줘야한다. (ex. old-project -> old_project_1 -> ...)
내 방법의 장단점 (AI선생님 피드백)
| 장점 | 단점 |
| 프로필 정리: 수십 개의 연습용 레포지토리가 하나로 줄어들어 깔끔해집니다. | 복잡도: 나중에 특정 프로젝트의 특정 시점 코드를 찾기가 조금 번거로울 수 있습니다. |
| 기록 보존: 삭제 시 사라지는 잔디를 안전하게 지킬 수 있습니다. | 프로젝트 맥락 상실: 커밋 메시지들이 뒤섞여 전체적인 프로젝트 흐름을 한눈에 보기 어려울 수 있습니다. |
추가팁
삭제된 레포지터리 복구하는 방법
GitHub은 실수로 삭제한 레포지토리를 90일 이내에 복구할 수 있는 기능을 제공한다.(역시 God Github!)
아래 경로에서 복구(Restore)할 수 있다.
- 경로: GitHub Settings > Repositories > Deleted repositories
- 주의 사항
- 삭제한 지 90일 이내의 레포지토리만 이곳에 표시된다.
- 방금 삭제하셨다면 시스템 반영에 약간의 시간이 걸릴 수 있으니 5~10분 뒤에 다시 새로고침해야한다.(필자도 삭제하고 급하게 들어갔는데 없어서 당황했다)
- Fork한 레포지토리는 삭제 시 이곳에 나타나지 않으며 복구가 불가능할 수 있다.(직접 만든 레포지토리 위주로 확인할 수 있다)
'혼공' 카테고리의 다른 글
| [코드트리 후기] 완전탐색 알고리즘 극복기 (0) | 2026.06.07 |
|---|---|
| [코드트리 후기] 코딩테스트 준비 시작, 갭체크로 나의 위치 파악 (0) | 2026.05.27 |
| 예외처리 (0) | 2026.04.27 |
| [Bash] grep 명령어 (0) | 2026.04.23 |
| [Bash] 기본 명령어 모음 (0) | 2026.04.23 |