개발 공부/GIT

git의 혁신 branch (지옥에서 온 Git - 생활 코딩)

공부하는개발자_ 2023. 5. 7. 00:25

 

작업을 진행하다가 필요에 의해 작업이 분기되는 현상을 branch를 만든다고 표현
깃은 branch를 통해 쉽게 버전 관리를 할 수 있다.

 

branch를 사용하기 좋을 때

원래 파일의 기본 소스는 있는 상태에서 고객에게 custom된 기능들을 추가해 주어야 할때 
필요 없는데 개발해달라고 하는 상황에 해줘야 되는데 나중에 쓸모 없게 됐을때
지금까지 작업했던 파일을 서버에 반영해야 하는데 문제점이 없는지 체크하는 경우, 메인이 되는 작업과 test하는 작업을 분기해야 할 경우 등..

git branch 입력하면 master라고 뜨는데, 시작할때 기본 branch를 사용하게 되어 있고 그 branch의 이름이 master이다.

 

*branch 만들기
git branch 브랜치명 : 깃 브랜치 추가 기능
git checkout 바꾸고자 하는 브랜치명 
기존의 master 브랜치명에서 checkout후 바꾼 branch명으로 바꿔진다.

master branch와 추가한 branch는 같은 상태이다. 생성한 branch는 현재 속해있는 bracnch 상태를 그대로 복사.
저장한 파일은 현재 어느 branch에 속해있느냐에 따라 내용이 완전이 달라진다.

 

branch는 댓가가 따른다. branch를 만들면 편리한 기능을 갖게 되지만 동시에 복잡성을 갖게 된다

 

*branch 정보확인

git log --branches -- decorate --graph

저장소에 있는 모든 branch를 다 볼 수 있다. HEAD (현재 사용중인 branch) 가 어떤 branch인지 나온다

exp branch는 최신 commit이 4였고 그 이전은 3이었다. 2라는 commit에서 비롯되었다는 뜻.

master branch는 5이전에 2라는 뜻. exp와 master의 공통조상에 해당되는 commit은 2이다.

이러한 상태를 graph를 통해 알 수 있음.

 

git log --branches -- decorate --graph --oneline

훨씬 더 간결하게 전체적인 상황을 볼 수 있다.

 

stree
command line 을 쓰는 이유: 필요해서가 아니라 가치 있기 때문에. 모든 면에서 좋은 것이 아니고,

적합한 수단을 선택할 필요가 있다. 

 

git log 브랜치A .. 브랜치B 를 누르면 차이점을 볼 수 있는데,
브랜치A에는 없고 브랜치B에는 있는 내용을 보여 준다.

소스 코드를 보고자 할 땐, git log -p 브랜치1 ..브랜치2

브랜치A에는 없고 브랜치2에는 있는 commit이 5라는 것과 브랜치A에는 파일이 없는데 

브랜치B에서 f3라는 파일을 생성했고 그 파일의 내용은 a가 추가 되었다는 것을 뜻함.

git diff 각각 branch의 현재 상태를 비교할 수 있다.

 

*branch 병합

branch A => branch B (*)

ex) branchA의 내용을 branchB의 내용으로 옮기고자 할때,

branchB로 checkout후 branchB에서 merge명령을 함.

이 상태에서 git merge branchA 를 해야한다.

 

git branch -d 브랜치명 : 브랜치 삭제기능

 

*Stash : 감추다, 숨겨두다
어느때 사용하는가?

branch로 활발하게 작업하다보면, 작업하던 내용이 다 끝나지 않았는데 다른 branch로 checkout해서 다른 일을 해야하는 경우. 작업이 끝나지 않았는데 commit하기도 애매하고, commit을 안하면 checkout할수도 없는 상황일때 stash를 이용하게 되면 작업했던 내용을 어딘가에 숨겨 놓을수 있다. head의 version으로 이동해서 현재 branch의 상태를 깔끔하게 만들고, 다른 branch로 checkout할 수 있는 기능. branch를 활발하게 쓰지 않으면 활용을 안하게 됨.

 

 

 

헷갈리기 시작했다.하핳!ㅋㅋ 이해될때까지 반복해서 듣고 넘어가긴 하고 있는데...
반복만이 살길....^^*

'개발 공부 > GIT' 카테고리의 다른 글

웹 프로젝트 git 사용 필기  (0) 2023.07.31
git으로 협업하기  (0) 2023.07.26
버전 관리의 본질 (지옥에서 온 Git - 생활 코딩)  (0) 2023.05.05