Git : rebase, merge, 그리고 stash

2023. 9. 9. 10:54·Git
반응형

Git은 다양한 고급 기능을 제공하여 복잡한 작업 흐름에 대응할 수 있게 해줍니다. 이 글에서는 Git의 rebase, merge, 그리고 stash에 대해 알아보겠습니다.

rebase vs merge

두 명령어 모두 브랜치 간의 변경사항을 통합하는 데 사용되지만, 사용 방식과 결과가 다릅니다.

merge

merge는 두 브랜치를 합칠 때, 두 브랜치의 공통 조상과 각 브랜치의 최신 커밋을 사용하여 새로운 커밋을 생성합니다.

$ git checkout main
$ git merge feature-branch

 

이렇게 하면 feature-branch의 모든 변경사항이 main 브랜치에 통합됩니다.

장점 : 원래의 브랜치 히스토리가 유지됩니다.
단점 : 복잡한 브랜치 히스토리가 생성될 수 있습니다.

 

rebase

rebase는 현재 브랜치의 커밋을 임시로 저장하고, 대상 브랜치의 커밋으로 현재 브랜치를 업데이트한 후, 임시로 저장한 커밋을 다시 적용합니다.

$ git checkout feature-branch
$ git rebase main

 

장점 : 선형적인 커밋 히스토리를 생성합니다.
단점 : 과거의 커밋 히스토리를 변경하므로 협업 중인 경우 다른 사용자와 충돌이 발생할 수 있습니다.


stash : 변경사항 임시 저장 및 복구

현재의 작업을 임시로 저장하고, 나중에 다시 불러와 계속 진행할 수 있게 해주는 기능입니다.

임시 저장하기

$ git stash save "임시 저장 메시지"


임시 저장된 목록 보기

$ git stash list

 

임시 저장된 변경사항 복구하기

$ git stash apply stash@{0}   # 가장 최근의 stash 적용

 

 

임시 저장된 변경사항 제거하기

$ git stash drop stash@{0}

 

Tip: git stash pop은 apply와 drop을 동시에 수행합니다.

 

마치며

Git은 다양한 고급 기능을 제공하여 개발자의 다양한 요구사항을 충족시켜줍니다. 이러한 고급 기능들을 잘 활용하면 보다 효율적인 개발 및 협업이 가능합니다. 이 글을 통해 rebase, merge, stash에 대한 기본적인 이해를 얻었기를 바랍니다.

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

'Git' 카테고리의 다른 글

git log로 코드의 변경사항을 확인하는 방법  (0) 2023.11.03
Git lfs : 대용량 파일 관리  (0) 2023.10.11
원격 저장소와 Git 연동  (0) 2023.09.08
Git 기본 명령어  (0) 2023.09.07
Git : Branch & Merge  (0) 2023.09.06
'Git' 카테고리의 다른 글
  • git log로 코드의 변경사항을 확인하는 방법
  • Git lfs : 대용량 파일 관리
  • 원격 저장소와 Git 연동
  • Git 기본 명령어
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730) N
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19) N
      • 일기장 (4)
      • 파이썬 (131) N
        • Basic (42) N
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (5) N
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    cv2
    Python
    C#
    스마트스토어리뷰
    라떼우유
    devlife
    파이썬
    programmerlife
    믈레코비타멸균우유
    스크립트 실행 순서
    카페24리뷰이관
    codingcommunity
    카페24리뷰
    list
    쇼핑몰리뷰
    유니티
    codingtips
    리뷰이관
    learntocode
    appdevelopment
    스크립트 실행
    리스트
    셀레니움
    unity
    rtsp
    리뷰관리
    상품 리뷰 크롤링
    ipcamera
    programming101
    긴유통기한우유
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Git : rebase, merge, 그리고 stash
상단으로

티스토리툴바