inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

제대로 파는 Git & GitHub - by 얄코(Yalco)

git rebase --onto 나 git rebase 를 되돌릴 수 있는 방법이 있을까요?

831

HappyJay

작성한 질문수 16

0

(다른 가지의 잔가지만 가져오기) 강의 수강 중 질문이 있습니다.
 
git rebase --onto
를 한 이후에 다시 이전 상태로 되돌리려고 하는데
 
git reset --hard 를 해도 되돌아가지 않고
git reflog 를 통해 특정 해시로 돌아가려도 해도 어디로 가야 할지 잘 모르겠습니다.
 
reflog 를 보면 아래처럼 나오는데요
어느 브랜치로 가서(main ?? citrus??) 어떤 해시id 로 리셋해야 할까요?
 
9931c78 (HEAD -> main, citrus) HEAD@{0}: merge citrus: Fast-forward
943f19b HEAD@{1}: checkout: moving from citrus to main
9931c78 (HEAD -> main, citrus) HEAD@{2}: rebase (finish): returning to refs/heads/citrus
9931c78 (HEAD -> main, citrus) HEAD@{3}: rebase (pick): Lime
008af77 HEAD@{4}: rebase (pick): Lemon
943f19b HEAD@{5}: rebase (start): checkout main
943f19b HEAD@{6}: cherry-pick: Cherry
a8bfbbf HEAD@{7}: checkout: moving from root to main
9730f02 (root) HEAD@{8}: commit: Beet
1d6746b HEAD@{9}: commit: Radish
7f8a497 HEAD@{10}: commit: Potato
58ec50a HEAD@{11}: checkout: moving from 58ec50aebddd41222e5d7c9e7b3f619214f8467b to root        
58ec50a HEAD@{12}: checkout: moving from main to HEAD~
a8bfbbf HEAD@{13}: checkout: moving from citrus to main
c88afd5 HEAD@{14}: commit: Lime
b4e7c89 HEAD@{15}: commit: Lemon
52d4d8e HEAD@{16}: checkout: moving from fruit to citrus
af29e52 (fruit) HEAD@{17}: commit: Grape
cadfd02 HEAD@{18}: commit: Cherry
52d4d8e HEAD@{19}: commit: Orange
886bc43 HEAD@{20}: checkout: moving from main to fruit
a8bfbbf HEAD@{21}: commit: Onion
58ec50a HEAD@{22}: commit: Carrot
886bc43 HEAD@{23}: commit: Apple
487f391 HEAD@{24}: commit (initial): FIRST COMMIT

git github

답변 1

0

얄팍한 코딩사전

안녕하세요, 얄코입니다. 🙂

우선, 강의 수강 방법 편에서 말씀드렸듯,
질문은 각 페이지 하단의 안내대로 지정된 제목을 복사하여 메일로 보내주세요.
⭐ 강의질문은 꼭 이렇게 보내주세요! | 얄코 (yalco.kr)

바로 답변을 드리기 전에, 말씀주신 상황을 분석해볼 필요가 있습니다.

git reflog는 모든 행동들을 저장하죠.
때문에, git rebase --onto 를 하시기 직전 git reflog 해보시면

되돌아가야 할 마지막 상태가 어딘지를 확인해보실 수 있을 것입니다.

거기서 git rebase --onto를 해보신다면
git reflog에 단계 여러개가 추가되어 있는 것을 보실 수 있을거에요.

아래처럼 말이죠

-----

3445300 (HEAD -> citrus) HEAD@{0}: rebase (finish): returning to refs/heads/citrus

3445300 (HEAD -> citrus) HEAD@{1}: rebase (pick): Lime

1c53a9a HEAD@{2}: rebase (pick): Lemon

a8bfbbf (main) HEAD@{3}: rebase (start): checkout main

-----

 

여기서 git reset --onto가 여러 동작을 포함한다는 것을 알 수 있습니다.
따서 옮길 브랜치의 커밋마다 이를 진행하는거죠.

즉 이를 모두 되돌리려면

저 부분의 바로 이전, 즉 HappyJay님의 경우

943f19b HEAD@{6}: cherry-pick: Cherry

이 부분으로 가면 될거에요.

이처럼 분석해보면서 진행하시다 보면 더 많은 것을 얻어가실 수 있습니다.

이 부분은 페이지에도 추가해둘게요!

남은 부분도 어려운 부분 있다면 언제든 질문주세요! (메일로요 ^^;)

사이트가 막힌건가요?

0

286

2

커밋 내용 실수 수정

0

212

2

에러가 나서 질문드립니다.

0

316

2

gitlab, github

0

678

1

질문은 아니고 --decorate 인자를 안붙여도 되는 것 같네요

0

752

1

대체 이메일 알려주세요 카카오이메일 먹통일 거 같은데...

0

937

1

이상해졌습니다..ㅜ

0

1120

3

안녕하세요. 깃허브 처음 수강하는 수강생입니다.

1

793

1

강의 내용을 개인적으로 정리해서 소장하거나, TIL 형식으로 정리해서 개인 노트에 업로드 해도 될까요?

0

870

1

아.. 좀 부족한 것 같은데여...

2

1893

4

얄코 홈페이지 들어가면 수업 보조자료 없던데요?

0

1564

1

브랜치이름 질문입니다!

0

2641

1

저는 vcs에 마우스 클릭하는 부분이 안 뜨는데 설정 추가로 해줘야할 게 있나요?

0

446

1

sourcetree설치_Mac OS문제

0

615

2

git config --global -e

0

2003

3

sprint 상황 질문

0

420

1

git 버전

0

500

1

오류 발생했습니다

0

410

1

질문있습니다!!

0

521

2

Git Flow 에 대해서도 강의 부탁드립니다.

0

601

2

비전공자 웹개발 공부 방향 질문 (수업 내용과는 관련이 없는 질문입니다 죄송합니다)

1

389

1

[맥북사용자] 예제를 다운받은 시점의 uncommitted changes가 자동 생성되는 것 같습니다.

3

642

1

Git fails to revert: Found a swap file "COMMIT_EDITMSG.swp"

0

1174

1

윈도우용 소스트리 새로고침

2

924

1