현재 commit과 이전 commit 기록까지 전부 반영되는 branch꼬임현상 해결하기

2023. 12. 5. 02:25· Github
목차
  1. # Git 저장소의 원격 저장소인 origin에 대한 정보를 먼저 보자!
  2. # git remote show origin 파헤치기
  3. # branch를 main으로 바꾸기
  4. # git log 살펴보기
  5. # git log를 pretty옵션으로 한줄한줄 보기
  6. # 5단계 이전으로 되돌려버리자
  7. # cherry-pick으로 정상적인 commit을 가져오자!
반응형

이번 포스팅은 제가 project하면서 겪었던 git issue에 대해 살펴보고 해결방안을 살펴볼려고 합니다!

 

git에서 proj를 하고 main이 아닌 다른 branch에서 commit하고 main으로 PR을 날린상황입니다.

이전에 commit했던 기록들까지 다 저장되는 현상들이 발생했습니다. 어떤 현상이 발생했는지 아래 그림을 통해 살펴보겠습니다.

 

초기 commit은 아무 설명이 달려있지 않아 부끄럽네여...ㅎㅎㅎ 점점 commit 다는 quilty가 높아집니다!

 

위에 그림에서 저는 맨 아래 'feature/convert-to-poetry-in-ci-process' commit만 날려서 PR한 상황인데 이전에 commit한 내역까지 모조리 저장이 되었습니다. 지금 뭔가가 충돌난거 같죠..? 여기서 생각해볼 수있는 해결방법은

 

1. main 자체가 엄청나게 꼬였다.

2. origin/main을 최신화를 시키지 않고, main에 쌓아두었다가 commit했다!

 

이 두가지 가설을 세워볼 수가 있습니다

 

저는 이 중에서 main자체가 엄청나게 꼬였다! 라는 가설을 먼저 깔고 가겠습니다.

 

# Git 저장소의 원격 저장소인 origin에 대한 정보를 먼저 보자!

git remote show origin

위의 명령어로 원격 저장소의 정보를 볼 수 있습니다.

# git remote show origin 파헤치기

  • git remote : 이 명령어는 원격 저장소의 이름을 출력해줍니다. (보통은 orgin 출력)
    • 저장소를 clone하면 origin이라는 리모트 저장소가 자동으로 등록되기 때문에 origin이라는 이름을 볼 수 있습니다.

  • git remote -v : 원격저장소 이름과 URL을 함께 볼 수 있습니다. 
    • 원격저장소가 여러 개 있다면 등록된 전부를 보여줍니다.
    • 원격저장소가 여러개 등록되어있다면 다른 사람이 기여한 내용을 쉽게 가져올 수 있습니다.

  • git remote show origin : 원격저장소의 구체적인 정보를 확인할 수 있습니다.
    • git pull 명령을 실행할 때 main branch와 merge할 branch가 무엇인지 볼 수 있습니다.
    • git push 할 때 branch마다 원격저장소와 비교해 어떤 상태인지 보여줍니다.
      • up to date : 최신상태
      • local out of date : 최신 정보가 아니라 뒤떨어진 정보
      • fast-forwardable : 앞서간 정보
      •  

# branch를 main으로 바꾸기

branch 변경은 checkout으로 가능합니다. -b옵션을 주면 새로운 branch생성입니다.

git checkout main

 

branch를 main으로 변경완료했습니다.

 

# git log 살펴보기

현재 꼬여있는 저의 git상태를 git log로 살펴보겠습니다.

HEAD -> main은 로컬 저장소가 위치한 commit 주소이고, origin/main, origin/HEAD가 가르키는 commit주소가 서로 다릅니다. 정상적이라면 HEAD -> main과 origin/main, origin/HEAD는 같은 commit주소를 바라봐야합니다.

서로 다른 주소를 가르키니 뭔가 이상하죠?

 

 

 

# git log를 pretty옵션으로 한줄한줄 보기

그러면 어디서부터 꼬였는지 확인하기 위해 git log를 pretty옵션으로 한줄한줄 보도록 하겠습니다.

git log --pretty=oneline

역시나 HEAD -> main과 origin/main, origin/HEAD가 가르키는 commit이 다릅니다!!

그렇다면 이전으로 되돌려서 초기 상태로 가서 main을 깨끗하게 해줘야겠습니다.

 

ps) main이 안꼬이고 정상적이라면 이런 형태가 나와야해요..!

HEAD -> main과 origin/main, origin/HEAD가 commit주소가 같은거 보이시죠?! 이 경우가 정상적인 경우입니다.

 

# 5단계 이전으로 되돌려버리자

git reset HEAD~5 --hard

해당 명령어로 5단계 이전으로 되돌아 버리고 다시 git log --pretty=online으로 상태를 보았는데...

위의 빨간색 박스와 비교해보았을 때, 아래 빨간색 박스와 commit 주소가 다른거 보이시나요?

제 컴퓨터에 있는 main이 완전히 꼬여버린 것 같습니다......

 

# cherry-pick으로 정상적인 commit을 가져오자!

제 main이 완전히 꼬여버렸습니다... 그래서 이전에 commit 중 정상적인 commit을 가져와다 콕 집어서 새로운 branch에 적용하겠습니다.

git cherry-pick <commit hash>

 

.

.

.

.

.

반응형
저작자표시 비영리 변경금지 (새창열림)

'Github' 카테고리의 다른 글

CRLF, LF 차이에 대해 알아보고 git설정해보기  (0) 2023.12.14
git push할 때마다 password 입력하라고 나올 때 해결법!  (0) 2023.12.14
git conventional commit에 대해 살펴보기  (0) 2023.12.14
Git 원격저장소에 있는 내가 원하는 PR commit만 gh로 가져오기~!  (0) 2023.12.14
나만의 git정리  (0) 2023.11.05
  1. # Git 저장소의 원격 저장소인 origin에 대한 정보를 먼저 보자!
  2. # git remote show origin 파헤치기
  3. # branch를 main으로 바꾸기
  4. # git log 살펴보기
  5. # git log를 pretty옵션으로 한줄한줄 보기
  6. # 5단계 이전으로 되돌려버리자
  7. # cherry-pick으로 정상적인 commit을 가져오자!
'Github' 카테고리의 다른 글
  • git push할 때마다 password 입력하라고 나올 때 해결법!
  • git conventional commit에 대해 살펴보기
  • Git 원격저장소에 있는 내가 원하는 PR commit만 gh로 가져오기~!
  • 나만의 git정리
리미에오
리미에오
리미에오
리미에오 기록저장소
리미에오
전체
오늘
어제
  • 분류 전체보기 (40)
    • About (1)
    • Audio (2)
    • Operating System (4)
      • Linux (4)
    • Machine Learning (1)
    • Deep Learning (3)
      • cs231n (3)
    • Language (3)
      • Python (3)
      • Pytorch (0)
    • LLM (6)
      • LangChain (2)
      • LangGraph (0)
    • Paper (4)
      • Speech Recognition (2)
      • Speech Enhancement (1)
      • NLP (0)
      • Mutimodal (0)
    • FastAPI (1)
    • Github (6)
    • dev (1)
    • 서평 (5)
    • AWS (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • linear classifier
  • 딥러닝강사
  • powerlevel10k
  • Rag
  • distil whisper
  • Weak Supervision
  • 요즘개발자
  • 생성AI
  • Whisper
  • fewshot
  • 2023년회고
  • WSL2
  • poetry install
  • requirements.txt install
  • speech recognition
  • zsh
  • zeroshot
  • openai api
  • Prompt Engineering
  • GIT
  • AWS
  • 음성합성데모
  • Textsplitter
  • 러닝레이
  • 화이팅
  • zsh-autosuggestions
  • AI강사
  • LangChain
  • 생성형AI
  • 서평단

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
리미에오
현재 commit과 이전 commit 기록까지 전부 반영되는 branch꼬임현상 해결하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.