[git] git rebase / git reset

April·2021년 12월 10일
0

Git

목록 보기
4/7
post-thumbnail

여러 개발자들과 협업할 때 필요한 git.. 그 동안은 무난하게 사용했었는데,

  • 최근 협업하는 개발자가 많아지고
  • git 버전을 체계적으로 관리하게 되면서

git rebase 를 다시 사용하게 되었다..
그러나 한동안 사용안해서 다 까묵.. 🥲🥲
다시 공부해서 나를 위해 정리하는 git rebase.. 😅😅



git rebase

git rebase 란?

  • Rebase는 commit history를 정리하는 역할을 한다
  • Rebase는 branch를 병합하는 방법 중 하나이다.
    • rebase
    • merge

develop(or master or main)에서 branch를 만들어 열심히 작업하다 보면,
현재 작업하는 branch가 develop에 비해 커밋이 낮아지게 된다.
이럴 경우 develop를 최신화해서 현재 작업하는 branch를 병합야 하는데, 그럴 경우 rebase를 사용한다.
rebase 명령어를 사용하여 불필요한 커밋을 하나로 squash 할 수 있다.


✔️ 작업하기 전, 현재 git backup 할 때

git checkout -b backup/브랜치명
git push -u origin backup/브랜치명
git checkout feature/브랜치명

git rebase 하기!

1️⃣ develop(master) 브랜치 최신화

git checkout develop(master)
git pull

2️⃣ rebase 👍

git checkout feature/브랜치명
git rebase -i develop
// squash 및 커밋 메세지 작업 후
git push --set-upstream origin feature/브랜치명

  • rebase 하는 동안 squash 하기
    1) 가장 오래된 커밋을 pick 하기
    2) 다른 커밋 메세지는 가장 오래된 commit 기준으로 squash 한다
    3) Esc ➡️ :wq 로 저장하고 창에서 빠져나오기!
    4) 최종적으로 이 rebase된 커밋의 내용을 작성하는 에디터가 하나 더 나오는데, 이 때

    • 불필요한 내용을 제거하고 현재 수정 내용에 대한 커밋 메시지를 작성하고
    • Esc ➡️ :wq 로 저장하고 창에서 빠져나온다
    • 그 후 push 하기
  • 충돌 발생 시 에디터에서 충돌 해결 후 --continue를 반복하되, commit을 해줄 필요는 없다

git add .
git rebase -—continue 

  • 혹 잘못 리베이스를 했다면.. rebase 되돌리기..
git rebase —-abort

3️⃣ rebase 후 merge 작업

git checkout develop
git merge 브랜치명
git push


git reset 하기!

일부 커밋으로 돌아가야(?) 할 경우 사용...

✔️ 한 칸 전 커밋으로 되돌리기

git reset HEAD^
// 이동할 만큼 이동하고
git push -f

✔️ 원하는 커밋 지점으로 되돌리기

  • git log 한 줄로 간편하게 보기
git log --oneline

  • 되돌릴 지점의 커밋 해시 확인하기
git reset --soft 해시
git push -f

내용주 용도? 차이점
--softbranch 이동하기
--hardcommit 되돌리기


git 임시 저장!

✔️ git stash

git stash       // 새로 생성한 파일은 임시저장에서 제외
git stash -u    // 새로 생성한 파일도 임시저장
git stash apply // 가장 마지막 임시저장 값을 불러온다. 해시값으로도 불러오기 가능


profile
🚀 내가 보려고 쓰는 기술블로그

0개의 댓글