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번으로 다시 시작하기로 결정했다.
'Git' 카테고리의 다른 글
[Git] .gitignore 수정 후, 이미 추적된(tracked) 파일 제외하기 (0) | 2025.02.10 |
---|---|
[Git] pull requset 작성 법, Open a pull request 설명 (0) | 2024.11.04 |
[Git] 깃 초보, 깃 브랜치 전략 - main, develop, feature 그리고 충돌(2) (0) | 2024.10.27 |
[Git] 깃 초보, 깃 브랜치 전략 - main, develop, feature 그리고 충돌(1) (0) | 2024.10.27 |