본문 바로가기
Git

[Git] branch

by shur_ 2023. 11. 22.

 

깃으로 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어진다.

main 브랜치는 어떤게 최신 커밋인지에 대한 정보를 가진다.

즉 브랜치는 커밋을 가리키는 포인터와 비슷하다.

 

git commit -am  'message'

 

수정한 파일을 하나씩 스테이지에 올려 두었다 한꺼번에 커밋할 수 있지만 수정한 내용을 스테이지에 올리는 동시에 커밋까지 처리가능.
all을 뜻하는 a 와 message를 뜻하는 m.

단 이 방법은 한 번이라도 커밋 한 적이 있는 파일을 다시 커밋할 때만 사용할 수 있음.

 


 

브랜치를 만들거나 확인하는 명령어는  git branch 이다.

git branch

 

 

main(master) 브랜치에서 작업하고 있었던 것을 확인할 수 있다.

새로운 브랜치를 만들려면 git branch 다음 만들려는 브랜치 이름을 적는다.

git branch apple

 

 

main(master) 브랜치 위에 apple 브랜치가 추가 된 것을 확인할 수 있다.

main(master) 앞에 * 표시가 있는데, 이는 현재 작업하고 있는 브랜치를 나타낸다.

아직 main 브랜치에서 작업하고 있음을 알 수 있다.

 

 

git log로 확인해보면 (HEAD -> master, apple)을 확인할 수 있다.

저장소에 main과 apple 이라는 2개의 브랜치가 있고, HEAD가 가리키는 것이 현재 main 이므로 지금 작업하고 있는 곳은 main이라는 뜻이다.

 

 

git branch로 브랜치 추가 후 확인.

 

 

work 3 커밋 해시의 오른쪽에 main 브랜치 뿐만 아니라 추가한 브랜치들이 있다.

ms, google, apple 의 최시 커밋이 work 3 이라는 뜻이다.

 

 

work.txt 에 content 4 추가 후 커밋.

로그가 어떻게 나타는지 확인해보자.

 

git log --oneline

git log에 --oneline 옵션을 주면 한 줄에 한 커밋씩 보여준다.

여러 커밋을 한눈에 확인할 때 편리하다.

 

최신 커밋인 main work 4는 main 브랜치에만 적용되어 있고, ms google apple 브랜치는 아직 work 3 커밋 상태다.

새로 만든 커밋은 현재 위치했던 브랜치에만 적용되고, 나머지 브랜치에는 적용되지 않는다.

이 때문에 브랜치별로 커밋을 따로 관리할 수 있다.

 


 

 

브랜치 전환 git switch

 

현재 브랜치에서 다른 브랜치로 이동하는 것을 브랜치를 전환한다고 한다.

git switch 명령어를 사용한다.

 

git switch 이동하고자 하는 branch

apple 브랜치로 전환 되었다.

 

 

cat work.txt로 work.txt 내용을 확인해보면 content 4는 없고 content 3까지만 있다.

content 4는 apple 브랜치를 분기한 후에 main 브랜치에 추가된 커밋이기 때문에 apple 브랜치에 영향을 미치지 않았다.

 


 

git add . (수정 내용이 있는 파일을 스테이지에 한꺼번에 올린다.)

 

git log --oneline --branches

 

git log 명령을 사용할 때 --branches 옵션을 사용하면 각 브랜치마다 최신 커밋을 한눈에 볼 수 있다.

이 옵션을 사용하면 main 브랜치에는 없고 apple 브랜치에만 있는 커밋, 즉 apple content 4 커밋을 보여준다.

 

git log --oneline --branches --graph

 

점선으로 커밋과 커밋의 관계를 나타낸다. 분기 점을 그래프로 볼 수 있다.

 

git log main..apple

 

브랜치 사이의 차이점 살펴보기

왼쪽 브랜치를 기준으로 오른쪽 브랜치와 비교

'Git' 카테고리의 다른 글

[Git] github 협업  (0) 2023.12.11
[Git] github 활용  (0) 2023.12.10
[Git] 커밋 메세지 수정하기 / 작업 되돌리기  (0) 2023.11.11
[Git] 커밋 확인하기  (0) 2023.11.11
[Git] 버전 만들기  (0) 2023.11.11

댓글