본문 바로가기

Git 사용법

자세한 Git 사용법 - 5 (branch 작업)

1. git branch 특징

가상 폴더 : 

작업 폴더를 실제로 복사하는 것이 아니라, 가상 폴더를 생성.

 

독립적인 동작:

원본 폴더와 분리하여 독립적으로 개발

 

2. Branch 명령어들

  • $ git status  : 현재 작업하는 브랜치 위치
  • $ git branch : 현재 브랜치 확인 
  • $ git branch 브랜치이름 커밋ID  : 커밋ID를 생략하면 HEAD기준, 생략하지 않으면 커밋 ID 기준.
  • $ git branch -v :브랜치의 세부 내용 확인
  • $ git branch -r : 원격 저장소의 브랜치 목록을 확인 가능
  • $ git rev-parse 브랜치이름 : 브랜치의 commit 해시를 확인 할수 있음

checkout 부분들

  • $ git checkout 브랜치이름 : 브랜치 이동
  • $ git branch -v : 이전 branch로 되돌아가기 
  • $ git checkout -b 브랜치이름 : 브랜치 생성 + checkout
  • $ git checkout -b 새이름 origin/브랜치이름 : 원격 저장소의  branch로 로컬저장소의 새 branch 만들고 동기화.
  • $ git checkout --track origin/function : 업스트림 브랜치 생성

브랜치 업로드 

  • $ git push -u origin 새브랜치이름  :  새 브랜치를 원격저장소에 전송
  • $ git push -u 브랜치이름:새로운브랜치 : 원격저장소와 로컬저장소의 브랜치 이름이 다를경우
  • $ git fetch : github에서 추가된 branch를 가져올수도 있음.

PUSH

  • git push --set-upstream origin master : 처음 올릴때만 연결시켜줘야함.

브랜치 삭제

  • git branch -d 브랜치이름 : -d 옵션은 스테이지 상태가 깨끗할때만 삭제를 허영함. 아래에 경우 안됨.  
    • (1) 워킹 디렉터리에 작업한 기록이 있을경우
    • (2) add 명령어로 스테이지의 인덱스가 변경된 상태
  • git branch -D 브랜치이름 : -D 옵션을 사용하면 강제로 브랜치를 삭제 가능

 

 

3. 워킹 디렉터리 정리

변경사항 있을시 commit을 해주거나 commit을 안할거라면 stash를 이용해 임시로 저장해주어야함.

 

4. AHEAD, BHEAD

  • AHEAD는 서버로 전송되지 않은 로컬 커밋이 있는것. HEAD 포인터를 기준으로 로컬 브랜치에 있는 커밋이 서버의 커밋 개수보다 많은 경우.
  • BHEAD는 로컬 저장소로 내려받지 않은 커밋이 있는것. 원격 저장소의 커밋이 자신의 로컬 저장소보다 더 최신 상태인 것.