일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- async
- 카톡
- docker
- wetube
- git
- flask
- node
- dict
- crud
- socket io
- 튜플
- 중급파이썬
- react
- RDS
- MongoDB
- S3
- Vue
- SAA
- EC2
- Props
- 파이썬
- AWS
- 채팅
- lambda
- TypeScript
- NeXT
- Class
- SSA
- merge
- pandas
- Today
- Total
초보 개발자
3 - 1 깃과 브랜치 본문
브랜치란 ?
모든 버전 관리 시스템에는 '브랜치(branch)'라는 개념이 있다. 나뭇가지라는 뜻인데 개인적으로는 나뭇가지 보다는 시냇물이라고 하는게 더 어울릴 수도 있을 것 같다. 여러 갈래로 나뉘기도 하지만 또 합쳐지기도 하기 때문이다. 처음에 너무 막막했는데 이해하고 보니 꽤 재미있었다.
만약 내가 프로그램을 만들었다고 치고 그 프로그램을 여러 곳에서 사주었다. 그리고 추가로 여러 기능을 요구할 수 도있다. 이럴 경우에 나는 어떻게 할까?
각각의 디렉토리를 만들고 프로그램을 복붙할 것이다. 그리고 개별적으로 요구사항등을 추가해 나갈 것이다. 또 A사에서 요구했던 기능을 C사에서 요구 할 수도 있다. 이럴 경우 그 부분만 C사의 프로그램에 복붙하면 잘 될까??
아마 C사의 프로그램도 이 전에 소스 코드 변경이 있어 잘 작동하지 않을 가능성이 높다.
이럴 때 브랜치를 사용한다.
브랜치를 이용하면 하나의 디렉터리에서 해결할 수 있고 브랜치를 나누어 공통 소스를 가지게 하고 또 필요한 부분은 합칠수 있다.
깃으로 버전관리를 시작하면 기본적으로 master라는 브랜치가 만들어 진다. 그리고 사용자가 커밋할 때마다 master브랜치는 최신 커밋을 가리킨다.
새 브랜치를 만든다면( 분기 한다라고도 함 ) 기존에 저장한 파일을 master브랜치에 그대로 유지하면서 기존 파일 내용을 수정하거나 새로운 기능을 구현할 파일을 만들 수 있다.
그리고 새 브랜치에서 원하는 작업을 다 끝냈다면 새 브랜치에 있떤 파일을 원래 master 브랜치에 합칠 수 있다.
이렇게 분기했던 브랜치를 master브랜치에 합치는 것을 병합이라고 한다.
브랜치 만들기
mkdir manual
cd manual
git init
ls -al
manual 이라는 폴더를 만든 뒤 그 폴더에서 git init을 통해 깃을 생성하고 확인한다.
.git 폴더가 잘 생성이 되어있다면
vim work.txt
content1 이라고 적어 주자 그리고 스테이지에 올린 뒤 커밋을 해주자 ( 커밋 메시지 'work1' )
git add work.txt
git commit -m "work 1"
work.txt파일을 두번 더 커밋하겠다.
content2를 추가한 후 work2커밋을 하고
또 content3을 추가한 뒤 work3커밋을 하겠다.
master브랜치가 가장 최신 커밋인 work 3을 가리키고 있고, HEAD가 master브랜치를 가리키고 있다.
HEAD는 여러 브랜치 중에서 현재 작업 중인 브랜치를 가리킵니다.
여기까지가 기본 작업이고 이제부터 여러 고객에게 프로그램을 제공해야 하는 상황이다.
브랜치를 사용하지 않는 다면 각 고객사 디렉터리를 만들고 manual 디렉터리를 복사해서 사용해야 한다.
그러나 branch를 사용한다면 간단하게 처리할 수 있다.
'깃 & 깃허브' 카테고리의 다른 글
3 - 3 브랜치 기능 및 사용 병합 2 (0) | 2021.09.14 |
---|---|
3 - 2 브랜치 기능 및 사용 병합 1 (0) | 2021.09.14 |
2 - 4 특정 커밋으로 되돌리기 (0) | 2021.09.13 |
2 - 3 작업 되돌리기 (0) | 2021.09.13 |
2 - 2 깃 버전과 상태 (0) | 2021.09.13 |