git & github

git & github - fetch, rebase, merge, pull, stash

DJ.Kang 2024. 8. 8. 20:52

- git fetch : 원격 저장소의 변경 사항을 가져와 원격 추적 브랜치를 업데이트 하지만 로컬 브랜치에는 영향을 미치지 않음

                  이후 merge나 rebase필요

git fetch -p // github 원격브랜치 목록 동기화
git checkout -t origin/<브랜치명> // 깃허브의 <브랜치명> 브랜치와 동일한 로컬브랜치 생성 후 그 브랜치로 checkout함

 

- git rebase : 현재 브랜치의 커밋들을 다른 브랜치의 최신 커밋 위로 재배치, 히스토리의 직선화

※ 커밋 해시가 변경됨

 

- git merge : 두 브랜치를 하나의 브랜치로 병합하는 작업

git checkout <브랜치A>
git merge <브랜치B>
  1. 브랜치 변경 : 변경 사항을 통합할 브랜치로 체크아웃한다.
  2. 병합 : 병합하려는 브랜치를 병합시킨다.
  3. 완료 : 브랜치A에 브랜치B가 병합된다.

출처 : https://www.youtube.com/watch?app=desktop&v=0chZFIZLR_0

 

- git pull : 원격 저장소의 변경 사항을 가져와 로컬 브랜치에 자동 병합(git fetch + git merge)와 같은 기능

git pull origin main

    → 원격저장소 'origin'의 'main'브랜치에서 최신 변경 사항을 가져와 현재 체크아웃된 브랜치에 병합.

※ 주의사항

  • 자동병합
  • 충돌 수동 해결
  • 병합과정에서 커밋이 생성될 수 있음

- git stash : 작업 중인 변경 사항을 임시로 저장

git stash                   // 변경 사항 저장하기
git stash list              // 변경 사항 확인하기
git stash apply             // 변경 사항 복원하기
git stash apply stash@{n}   // 특정 stash 복원하기
git stash drop stash@{n}    // stash 삭제하기
git stash pop               // stash 적용 및 삭제
git stash branch <브랜치명> // stash를 새 브랜치로 이동