티스토리 뷰

● 원격 저장소에서 branch 만들기

- 새로운 기능을 만들고 싶을 때 겂도 없이 main branch에서 바로 코드를 짜면 안 된다.
- 새 branch를 만든 후 거기에서 개발하는 것이 안전하다.

branch를 생성하려면 2가지 방법이 있다.
1. github.com에서 branch를 직접 만든다.(= remote repository 에서도 branch를 만들 수 있다.)
2. local repository에서 만든 branch를 remote repository에 올리는 식으로도 branch 생성이 가능하다.

 

1. github에서 직접 branch 만들기

- 위 사진과 같이 main branch 버튼을 누르면 branch를 바꾸거나 새로 만들 수 있다.

github에서 branch를 새로 만들었다.

 

2. local repository에서 branch 생성
- local repository에서 branch를 생성한 후 원격저장소로 git push 해도 된다.
- remote repository에서 git clone으로 복사해온 작업 폴더에서 새로운 branch를 만든 후 파일을 만들어 commit 해보자
- 해당 branch를 원격 저장소에 올리고 싶으면 아래의 명령어를 이용하자

git push 원격저장소주소 로컬브랜치명

cf)
git push 원격저장소주소 특정로컬브랜치명
--> 로컬저장소의 특정 브랜치 -> 원격저장소

git push 원격저장소주소
--> 로컬저장소의 모든 브랜치 -> 원격저장소

● Pull request

- 새로 만든 branch는 main branch와 합쳐져야 비로소 그 기능이 완성된다.
branch를 합치려면 git merge 명령어로 합친 후 git push 하면 된다.
- 그러나 협업의 경우 merge 하기 전에 토론 및 검토 등을 해야하는 경우가 있다.
이를 위해 github에는 pull request 라는 기능이 있다. 쉬운 말로 merge request 이다.
- 해당 기능을 통해 나의 branch를 merge 해달라는 요청을 할 수도 있고 팀원끼리 merge 전에 코드 검토도 가능하다.

- 위에서 만든 garden branch를 이용해 Pull request를 연습해보자

- github에서 Pull requests 하고 싶으면 위 사진처럼 Pull requests 탭을 클릭해 들어간 뒤 화면에 있는 New pull request 버튼을 누르면 pull request 생성이 가능하다.

- 그 다음에 어떤 branch를 어디에 합칠 것인지 선택하고 하단의 commit 내역, 변경 내역을 확인한 Create pull request 버튼을 누르면 Pull request가 열린다.

- 내용을 작성한 후 Create pulll request 버튼을 누르면 Pull requests 탭에 '숫자 1' 이 생긴것을 확인할 수 있다.

- 해당 탭을 클릭하면 아래와 같은 화면이 나온다.

- Pull requests 메뉴에서 위와 같이 확인이 가능하다.
- 사진 속 Write 영역에 코드를 리뷰하거나 코멘트(댓글)를 달면 된다.

- branch를 merge 하기로 결정했으면 merge 옵션 선택 후 merge 하면 된다.

 

출처 - 코딩애플 매우쉽게 알려주는 git & github

1. create a merge commit 하면
- 새로운 merge commit을 하나 생성해주는 3-way merge를 실행
- main branch 조회 시 합쳐진 branch의 commit 내역도 전부 나온다.
- 터미널에 git log --oneline --graph 해보면 합쳐진 branch도 그림으로 나온다.
- 그렇기에 merge 하려는 branch에 commit 내역이 많으면 복잡하고 더러워보일 수 있다. 

 

출처 - 코딩애플 매우쉽게 알려주는 git & github

2. squash and merge
- 합쳐질 branch의 commit 내역을 하나로 합쳐서 main branch에 신규 commit을 생성해준다.
- git log --oneline --graph 해보면 합쳐진 branch는 나오지 않는다.(깔끔하다.)
- commit을 하나로 합쳐서 main branch로 순간이동 시켜주는 행위

 

출처 - 코딩애플 매우쉽게 알려주는 git & github

3. rebase and merge
- 합쳐질 branch를 main branch 최신 commit으로 rebase하고나서 fast-forward merge 비슷한걸 해준다.
- 결과는 squash and merge와 비슷한데 합쳐질 브랜치의 commit 내역이 전부 보존된다.
- 해당 merge 방식도 git log --oneline --graph 해보면 합쳐진 branch는 나오지 않는다.

 

결론
- github 같은 원격 저장소에도 branch를 만들 수 있다. 
- Pull request & merge 할 때 옵션은 3개 중 하나를 골라서 하면 된다.

참고
- 원격 저장소의 commit 내역을 과거로 되돌리고 싶으면 로컬에서 git reset --hard 쓰고 git push -f 하면 가능하다.
- 만약 이렇게 하면 해당 branch를 공동 작업중인 사람들이 모두 영향을 받는다.
- github에 있는 revert 버튼은 예전 코드로 되돌려주는 commit을 만들어주는 식으로 동작한다.

 

cf)

- git pull 명령어로는 remote repository에 있는 branch를 가져올 수 없다.

- remote repository에 있는 branch를 local repository로 가져오고 싶으면 아래의 글을 참고하자

https://cjh5414.github.io/get-git-remote-branch/

https://velog.io/@juno7803/git-%EC%9B%90%EA%B2%A9-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0remote-branch

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함