git branch란 회사나 프로젝트에서 협업프로젝트를 하게 될때 같이 코드를 수정 및 같이 프로그래밍을 할 때 코드가 꼬이지 않게 하기 위해 각각의 독립적인 위치에서 수행 할 수 있도록 해주는 기능이다.

velog폴더를 만들어 준 후
git init을 해주어 버전 관리 환경을 만들어주었다.
그 뒤에 index.html index.css를 생성해주었을때 git은 항상 파일이 수정되거나 생성이 되었을 때는
git commit을 항상 해주고 다음 작업을 수행해야한다.
![]() | ![]() |
|---|
git add .는 경로 폴더 안에 커밋을 해야하는 모든 파일을 commit 대상 으로 지정하는 것이다
그 후 git commit -m "메시지 입력" 은 commit 대상들에게 커밋을 하는데 메시지를 작성하는 것인데
이것이 중요한 이유는 협업프로젝트는 나 혼자 개발을 하는 것이 아닌 여러 사람들과 같이 개발을 할 때 수정한 부분이 무엇인지 내가 이부분을 왜 commit했는지 기록을 하기 위함이다.
main branch에는 지금 index.html과 index.css가 있는데 여기서 개발을 할때 branch를 사용하면 된다.

git switch -c 브랜치이름 은 내가 지정한 브랜치 이름으로 생성을 하면서 바로 브랜치로 이동하라는 명령어다 만약 생성만 하고 싶다면 git branch 브랜치이름을 쓰면 된다

또한 hi브랜치로 이동을 하고 싶으면 git switch hi 를 작성하면

이동할 수 있다 여기서 브랜치만 생성하였고 파일을 수정 하지 않았으니 git commit을 할 필요는 없다 다만 불안하다면 git status를 습관화 하자.
이제 내가 firvelog브랜치 에서는 html을 개발하였고 한 사람은 hi 브랜치에서 css를 개발하였다고 가정해보자

git log --oneline --all --graph :로그를 한줄로 그래프 형식으로 보여줌.
main브랜치에 hi라는 브랜치와 firvelog가 나눠져 있고 총 몇번 커밋을 한지 보여지게 된다.
하지만 main브랜치로 이동하여 vscode로 코드를 보려고 한다면
![]() | ![]() |
|---|
아무것도 나타나지 않는다 그 이유는 merge를 하지 않았기 때문이다
merge란 서로 다른 브랜치에서 작업을 했을때 그 작업물을 병합하는 작업이다
이러한 작업때문에 브랜치는 중요하다.
이제 작업한 부분을 merge 해보자 hi를 merge하게 되면
![]() | ![]() |
|---|
css작업을 한 hi 브랜치가 main브랜치로 이동을 한 것이고 이것을 FAST-FORWARD 라고 한다.
좀더 이미지 적인 모습을 보기 위해 git kraken으로 봐보자

index.html과 index.css생성이 위치였던 main브랜치가 hicss로 병합을 했서 FAST-FORWARD가 되었다
여기서 공통 조상은 main이지만 hi와 firvelog는 공통조상이 main이지만 사진을 보면 firvelog와 hi는 서로 연결 되어 있지 않기 때문에 마지막 커밋과 공통조상을 연결해주는 3-way merge 기법을 사용한다.
hi브랜치를 제거해주고 firvelog와 merge해보자

머지를 하게 되면 이런 창일 뜨는데 그냥 커밋 메시지니 상황을 적고 꺼주자
![]() | ![]() |
|---|

그럼 정상적으로 커밋이 된 것을 알 수 있고. git kraken에서도 잘 커밋이 된 것을 알 수 있다.