깃허브(4): 브랜치
이론
- 가상 폴더
- 작업 폴더를 실제로 복사하지 않고 가상 폴더로 생성
- 외부적으로는 물리적인 파일 하나만 있는 것으로 보임
- 독립적인 동작
- 원본 폴더와 분리하여 독립적으로 개발 작업 수행 가능
- 빠른 동작
- 다른 버젼 관리 도구보다 가볍고, 브랜치 전환이 빠름
- Blob 개념 도입:
포인트와 유사
브랜치를 변경할 때 포인터를 이동하여 빠르게 전환
- 브랜치 명령 사용시 내부적으로 커밋을 하나 생성하여 브랜치로 할당(41바이트 파일)
- 요약
- 브랜치는 공통된 커밋을 가리키는 지점이다
- 브랜치는 실제 커밋이 추가될 때 만든다.
- 브랜치는 개발 분기점을 의미한다
실습
- 저장소 초기화시 master 브랜치 하나가 자동 생성
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (master)
$ git status
On branch master -------- 브랜치 작업 위치
No commits yet
nothing to commit (create/copy files and use "git add" to track)
- 깃에서는 현재 작업중인 브랜치를 확인하는 것이 중요
git branch 브랜치이름 커밋id : 브랜치 생성
- 커밋 id:
- 필수는 아니다
- 현재 head포인터를 기준으로 새로운 브랜치를 생성한다
- 브랜치 이름 규칙
- 시작 불가능: 기호(-), 마침표(.)
- 포함 불가능:
연속적인 마침표(..), 빈칸, 공백 문자, 물결(~), 캐럿(^), 물음표(?), 별표(*), 대괄호([ ]) ,아스키 제어 문자는 포함할 수 없습니다.
- 이름 중복 불가능
- 예시
infoh@DESKTOP MINGW64 /e/gitstudy06 (master)
$ git branch footer
fatal: A branch named 'footer' already exists.
git branch: 브랜치 목록 확인
- -v 옵션/-verbose 옵션:
브랜치 세부 사항 확인
(브랜치 이름, 커밋 id, 커밋메시지 )
git rev-parse 브랜치이름: 브랜치가 가리키는 해시 값 확인
git checkout 새로운브랜치이름: 현재 브랜치를 떠나 새로운 브랜치로 들어감
- 이론
- 브랜치가 이동하면 HEAD포인터도 함께 이동한다(HEAD 정보는 항상 변경된 브랜치의 마지막 커밋을 가리킨다. )
- 워킹디렉토리에 커밋하지 않은 내용이 있다면 브랜치를 바꿀 수 없다.
- 메시지
infoh@DESKTOP-MINGW64 /e/gitstudy06 (feature)
$ git checkout footer -------- 브랜치 이동
Switched to branch 'footer'
변경됨
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
- git checkout -
- 이전 브랜치로 이동한다
- git log --graph --al
브랜치 흐름도 같이 확인
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
$ git log --graph --all
* commit dcdb1c1fa4ef78bedd8dc13bc267e99391cc9782 (master)
| Author: hojin <[email protected]>
| Date: Sat May 11 18:45:35 2019 +0900
| master working...
|
* commit d84766c7f87b1d9d234050949c48681ba4e35da8 (HEAD -> footer, feature)
Author: hojin <[email protected]>
Date: Sat May 11 17:10:02 2019 +0900
first
- git show-branch --more=10
- --more 옵션으로 출력될 커밋 개수 제한 가능
브랜치 동작 원리
- 내가 어느 정도 하고 있었는데, 그 와중에 누가 커밋해버리면 ??
아하. 그 커밋을 가져오는 거구나.
Author And Source
이 문제에 관하여(깃허브(4): 브랜치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@nahyunbak/깃허브4-브랜치
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
포인트와 유사
브랜치를 변경할 때 포인터를 이동하여 빠르게 전환
- 저장소 초기화시 master 브랜치 하나가 자동 생성
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (master)
$ git status
On branch master -------- 브랜치 작업 위치
No commits yet
nothing to commit (create/copy files and use "git add" to track)
- 깃에서는 현재 작업중인 브랜치를 확인하는 것이 중요
git branch 브랜치이름 커밋id : 브랜치 생성
- 커밋 id:
- 필수는 아니다
- 현재 head포인터를 기준으로 새로운 브랜치를 생성한다
- 브랜치 이름 규칙
- 시작 불가능: 기호(-), 마침표(.)
- 포함 불가능:
연속적인 마침표(..), 빈칸, 공백 문자, 물결(~), 캐럿(^), 물음표(?), 별표(*), 대괄호([ ]) ,아스키 제어 문자는 포함할 수 없습니다.
- 이름 중복 불가능
- 예시
infoh@DESKTOP MINGW64 /e/gitstudy06 (master)
$ git branch footer
fatal: A branch named 'footer' already exists.
git branch: 브랜치 목록 확인
- -v 옵션/-verbose 옵션:
브랜치 세부 사항 확인
(브랜치 이름, 커밋 id, 커밋메시지 )
git rev-parse 브랜치이름: 브랜치가 가리키는 해시 값 확인
git checkout 새로운브랜치이름: 현재 브랜치를 떠나 새로운 브랜치로 들어감
- 이론
- 브랜치가 이동하면 HEAD포인터도 함께 이동한다(HEAD 정보는 항상 변경된 브랜치의 마지막 커밋을 가리킨다. )
- 워킹디렉토리에 커밋하지 않은 내용이 있다면 브랜치를 바꿀 수 없다.
- 메시지
infoh@DESKTOP-MINGW64 /e/gitstudy06 (feature)
$ git checkout footer -------- 브랜치 이동
Switched to branch 'footer'
변경됨
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
- git checkout -
- 이전 브랜치로 이동한다
- git log --graph --al
브랜치 흐름도 같이 확인
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
$ git log --graph --all
* commit dcdb1c1fa4ef78bedd8dc13bc267e99391cc9782 (master)
| Author: hojin <[email protected]>
| Date: Sat May 11 18:45:35 2019 +0900
| master working...
|
* commit d84766c7f87b1d9d234050949c48681ba4e35da8 (HEAD -> footer, feature)
Author: hojin <[email protected]>
Date: Sat May 11 17:10:02 2019 +0900
first
- git show-branch --more=10
- --more 옵션으로 출력될 커밋 개수 제한 가능
브랜치 동작 원리
- 내가 어느 정도 하고 있었는데, 그 와중에 누가 커밋해버리면 ??
아하. 그 커밋을 가져오는 거구나.
Author And Source
이 문제에 관하여(깃허브(4): 브랜치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@nahyunbak/깃허브4-브랜치
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
연속적인 마침표(..), 빈칸, 공백 문자, 물결(~), 캐럿(^), 물음표(?), 별표(*), 대괄호([ ]) ,아스키 제어 문자는 포함할 수 없습니다.
infoh@DESKTOP MINGW64 /e/gitstudy06 (master)
$ git branch footer
fatal: A branch named 'footer' already exists.
- -v 옵션/-verbose 옵션:
브랜치 세부 사항 확인
(브랜치 이름, 커밋 id, 커밋메시지 )
git rev-parse 브랜치이름: 브랜치가 가리키는 해시 값 확인
git checkout 새로운브랜치이름: 현재 브랜치를 떠나 새로운 브랜치로 들어감
- 이론
- 브랜치가 이동하면 HEAD포인터도 함께 이동한다(HEAD 정보는 항상 변경된 브랜치의 마지막 커밋을 가리킨다. )
- 워킹디렉토리에 커밋하지 않은 내용이 있다면 브랜치를 바꿀 수 없다.
- 메시지
infoh@DESKTOP-MINGW64 /e/gitstudy06 (feature)
$ git checkout footer -------- 브랜치 이동
Switched to branch 'footer'
변경됨
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
- git checkout -
- 이전 브랜치로 이동한다
- git log --graph --al
브랜치 흐름도 같이 확인
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
$ git log --graph --all
* commit dcdb1c1fa4ef78bedd8dc13bc267e99391cc9782 (master)
| Author: hojin <[email protected]>
| Date: Sat May 11 18:45:35 2019 +0900
| master working...
|
* commit d84766c7f87b1d9d234050949c48681ba4e35da8 (HEAD -> footer, feature)
Author: hojin <[email protected]>
Date: Sat May 11 17:10:02 2019 +0900
first
- git show-branch --more=10
- --more 옵션으로 출력될 커밋 개수 제한 가능
브랜치 동작 원리
- 내가 어느 정도 하고 있었는데, 그 와중에 누가 커밋해버리면 ??
아하. 그 커밋을 가져오는 거구나.
Author And Source
이 문제에 관하여(깃허브(4): 브랜치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@nahyunbak/깃허브4-브랜치
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- 이론
- 브랜치가 이동하면 HEAD포인터도 함께 이동한다(HEAD 정보는 항상 변경된 브랜치의 마지막 커밋을 가리킨다. )
- 워킹디렉토리에 커밋하지 않은 내용이 있다면 브랜치를 바꿀 수 없다.
- 메시지
infoh@DESKTOP-MINGW64 /e/gitstudy06 (feature)
$ git checkout footer -------- 브랜치 이동
Switched to branch 'footer'
변경됨
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
- git checkout -
- 이전 브랜치로 이동한다
- git log --graph --al
브랜치 흐름도 같이 확인
- 메시지
infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)
$ git log --graph --all
* commit dcdb1c1fa4ef78bedd8dc13bc267e99391cc9782 (master)
| Author: hojin <[email protected]>
| Date: Sat May 11 18:45:35 2019 +0900
| master working...
|
* commit d84766c7f87b1d9d234050949c48681ba4e35da8 (HEAD -> footer, feature)
Author: hojin <[email protected]>
Date: Sat May 11 17:10:02 2019 +0900
first
- git show-branch --more=10
- --more 옵션으로 출력될 커밋 개수 제한 가능
브랜치 동작 원리
- 내가 어느 정도 하고 있었는데, 그 와중에 누가 커밋해버리면 ??
아하. 그 커밋을 가져오는 거구나.
Author And Source
이 문제에 관하여(깃허브(4): 브랜치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@nahyunbak/깃허브4-브랜치
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아하. 그 커밋을 가져오는 거구나.
Author And Source
이 문제에 관하여(깃허브(4): 브랜치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nahyunbak/깃허브4-브랜치저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)