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 기본 명령어
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (658)
      • 상품 추천 (164)
      • MongoDB (4)
      • 하드웨어 (11)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바