1. 문제

공부를 너무 띄엄띄엄 하다 보니까 공부한 내용을 다 잊어버려서 git 레포지토리를 관리를 해야하는데 어떻게 해야 잘 감이오지 않아. gpt 선생님께 여쭤 보았다.

 

2. 문제 해결

✅ 1. 기존 레포 그대로 두고 v1, v2 브랜치 분리해서 관리

# 현재 상태를 v1으로 분리
git checkout -b v1
→ 현재 HEAD 상태 그대로 v1이라는 새 브랜치를 만듦
→ 새로운 커밋을 생성하지 않음
→ 즉, 브랜치 생성 = 커밋 발생 아님

git push origin v1

 

위와 같이 현재 브랜치를 그대로 복제해서 v1에 옮긴다음에 깃헙에 바로 push 한다. git checkout -b는 현재 HEAD 상태 그대로 v1이라는 새 브랜치를 만들기 때문에 커밋 발생이 아니다. 따라서 commit 메세지를 남기지 않는다.

 

# main으로 돌아가서 새 시작 준비
git checkout main

# 전체 커밋 수 확인 후 가능한 범위로 이동
# 예시 결과: 35라면, HEAD~34까지만 가능하다는 뜻이다.
git rev-list --count HEAD

git reset --hard HEAD~(숫자)  # 혹은 git rm -r * 로 파일 삭제
git push origin main --force  # 초기화된 상태를 강제로 푸시

main 브랜치로 돌아와서, git rev-list --count HEAD를 입력한 다음에 나오는 숫자에서 1을 뺀 숫자로 HEAD를 돌려버린다.

 

 

그럼 처음 레포지토리를 만들었던 태초의 시절로 돌아간다. 그냥 v1, v2로 브랜치 싹싹파서 옆으로 미는 느낌같다.

 

✅ 2. 새로운 레포지토리를 만들어 v2 프로젝트로 시작

mkdir my-study-v2 && cd my-study-v2
git init
git remote add origin https://github.com/username/my-study-v2.git
touch README.md
git add .
git commit -m "init: reboot study"
git push -u origin main

굳이...?

 

✅ 3. 현재 레포 내에서 /v1/, /v2/ 식으로 디렉토리 구분

📁 root/
├── v1/
├── v2/

이러면 소스코드 차이를 살펴보기 힘들다,,,

 

최종적으로는 1번으로 다시 시작하기로 결정했다.

+ Recent posts