[Git, Github] git push, pull, merge, rebase

JUNHO YEOM·2022년 11월 27일
0

Git, Github

목록 보기
10/27
post-thumbnail

git push(업로드 하기)하기

git push

git pull(당겨오기)

git pull

push하려고 할때 pull하는 2가지 방법

로컬 저장소의 내용이 원격 저장소의 내용보다 commit이 느릴 때는
commit을 할 수 없습니다.
따라서 2가지 방법을 적용하여 원격 저장소의 commit과 버전을 맞추어 주어야
로컬 저장소에서 작업한 내용을 commit할 수 있습니다.

merge방식

git pull --no-rebase
  • 소스트리에서 살펴보면 로컬의 메인브랜치와 원격의 메인 브랜치가 다른 브랜치라고 봅니다.
    그리고 서로 다른 두 브랜치를 하나의 커밋으로 merge하여 새로운 commit을 생성합니다.
    로컬 저장소와 원격 저장소의 달라진 시간선을 하나로 모아줍니다.
    모아진 commit내용을 push하는 방식입니다.(동시진행)

rebase 방식

git pull --rebase

원격 저장소에서 작업된 내용을 먼저 pull해서 commit 내역을 동일하게 만듭니다.
그리고 로컬 저장소에서 작업한 내용을 로컬 저장소에 commit합니다.
원격 저장소의 내용을 먼저 commit받고, 그 다음 로컬 저장소의 내용을 commit합니다.
2번의 단계를 거친 commit 내용을 pushㅎ는 방식입니다.(순차진행)

git pull --rebase

push할 때는 rebase를 사용하면 안됩니다.
pull 할때의 rebase방식은 협업시 사용할 수 있는 방식입니다.

push할 준비 완료 되었으니 push합니다.

git push

충돌 해결하기

충돌이 발생하였을 때는 충돌 내용을 수정하고

  • git commit -am "message" // 코드 수정 및 add, commit하기
  • git pull --rebase // 충돌 발생
  • 충돌내용 수정
  • git add . // 다시 commit준비하기
  • git rebase --continue // rebase다시 진행하기
  • git push // pull받아서 저장소 내용 해결 하였으니 다시 push하기

로컬 내역 강제 push하기

  1. 로컬의 내역 충돌 전으로 reset하기

  2. 명령어로 원격에 강제 적용하기

git push --force

원격의 브랜치 다루기

브랜치 새로 만들기

git branch from-local

// or 

git switch -c from-local

로컬 브랜치 원격 브랜치로 업로드하기

원격의 브랜치 명시 및 기본으로 설정하기

git push -u origin from-local

// or

git push --set upstream origin from-local

로컬 브랜치의 from-local이라는 이름의 브랜치를 원격 저장소의 origin 주소에 업로드 합니다.

브랜치 목록 살펴보기

git branch --all

or 

git branch -a

원격 저장소 브랜치와 로컬 저장소 브랜치

git branch는 로컬 저장소의 브랜치를 조회합니다.
git branch -a는 로컬 저장소의 브랜치도 함께 조회합니다.


원격의 브랜치 로컬로 다운받기

원격 저장소에 로컬 저장소와 다른 branch가 생성되어 있어야 합니다.

원격의 변경사항 확인

git fetch

원격 저장소 브랜치 다시 확인

git branch -a

fetch를 한 이후에 git branch -a로 브랜치를 확인하게 되면
원격 저장소의 바뀐 브랜치 내역을 조회할 수 있게 됩니다.

원격 브랜치 받아오기

git switch -t origin/from-remote

깃 스위치를 하고, -t 로컬로 from-remote라는 브랜치를 복사한 후 앞으로도 계속
로컬 저장소의 from-remote브랜치와 원격 저장소의 from-remote브랜치를 연결한다는 의미의 명령어입니다.


원격의 브랜치 삭제

git push (원격 이름) --delete (원격의 브랜치명)

0개의 댓글