프로젝트를 할때 깃허브로 협업을 하면서 브랜치 기능을 익숙하게 쓸 줄 알아야 하는 상황이다.
저번에 팀회의 때문에 모였을 때 브랜치 생성해서 수정하고 pull request 하는 것까지 배워보긴 했는데
게시물로 정리해놓으려 한다.
브랜치의 개념은 아니까 사용방법 위주로!
https://www.youtube.com/watch?v=DkrULCQIxdY&t=382s&ab_channel=AaronRoh
https://backlog.com/git-tutorial/kr/stepup/stepup2_1.html
이 곳을 참고하며 공부, 정리했다.(문제시 삭제하겠습니다)
사전 준비로 git 저장소를 만든다
$ git init
그리고 수정한 부분을 커밋한다(여기서는 myfile.txt 를 생성했다고 해보자)
$ git add myfile.txt
$ git commit -m "first commit"
그 다음에는 새로운 브랜치를 만들자(브랜치의 이름을 issue1 이라고 정했다)
$ git branch issue1
뒤에 따로 뭐 쓰지않고 git branch 만 쓰면 브랜치 목록을 볼 수 있다.
* 이 붙어 있는게 현재 선택되어 있는 브랜치.
$ git branch
issue1
* master
나는 issue1 이라는 브랜치에서 작업을 수행할거다.
그러니 이 브랜치를 사용하겠다고 명시적으로 지정을 해줘야한다.
그럴 땐 checkout 이라는 명령어를 사용하자
$ git checkout issue1
Switched to branch 'issue1'
참고)
그냥 처음부터
$ git checkout -b <branch>
이렇게 쓰면 브랜치 만들기와 체크아웃을 동시에 할 수 있다.
이제 issue1 에서 작업을 한다음에
git add
해주고
git commit -m "설명"
도 해준다.
이젠 master 브랜치에 병합을 해주고 싶다.
일단 merge 명령어를 사용하자
$ git merge <commit>
이러면 커밋내용이 HEAD 가 가리키고 있는 브랜치에 넣어진다.
(HEAD 는 현재 사용중인 브랜치에 위치된다)
master 브랜치에 넣을거니까 master 브랜치에 HEAD가 위치하게 만들어야 한다.
$ git checkout master
Switched to branch 'master'
master로 브랜치가 옮겨갔다.
병합을 해보면
$ git merge issue1
Updating 1257027..b2b23c4
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
이렇게 된다. issue1 브랜치는 더이상 필요없어서 삭제하려고 한다.
다음과 같이 입력한다.
$ git branch -d issue1
Deleted branch issue1 (was b2b23c4).
친구가 알려줬던 branch변경 명령어는 switch 여서 checkout이랑 뭐가 다르지 싶어서 찾아봤는데
checkout 이었던게 지금은 switch와 restore로 바뀌었다고 한다.
생성과 동시에 switch 하려면
$ git switch -c 브랜치
<프로젝트에서 자주 사용할 방법 순서>
git clone ‘주소’ (처음에만)
-----
git branch ‘branch 이름’ (내 브랜치 따로 만들기)
git switch ‘branch 이름’
~작업~
git add .
git commit -m “커밋 메시지”
git push origin ‘branch 이름’
(이후)
github 저장소에서 pull request 작성하기
merge 하기
git switch main
git pull origin main (pull 해서 다른사람이 한 것 내려받기)~작업하기~
-----
git branch 'branch 이름' (내 브랜치 따로 만들기)
... 반복!
<pull request 할 때 참고>
compare : 어느 브랜치를
base : 어느 브랜치에 합칠지