티스토리 뷰
● 원격 저장소에서 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를 바꾸거나 새로 만들 수 있다.
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 하면 된다.
1. create a merge commit 하면
- 새로운 merge commit을 하나 생성해주는 3-way merge를 실행
- main branch 조회 시 합쳐진 branch의 commit 내역도 전부 나온다.
- 터미널에 git log --oneline --graph 해보면 합쳐진 branch도 그림으로 나온다.
- 그렇기에 merge 하려는 branch에 commit 내역이 많으면 복잡하고 더러워보일 수 있다.
2. squash and merge
- 합쳐질 branch의 commit 내역을 하나로 합쳐서 main branch에 신규 commit을 생성해준다.
- git log --oneline --graph 해보면 합쳐진 branch는 나오지 않는다.(깔끔하다.)
- commit을 하나로 합쳐서 main branch로 순간이동 시켜주는 행위
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로 가져오고 싶으면 아래의 글을 참고하자
'Git' 카테고리의 다른 글
#11 git stash -코드 잠깐 보관하기 (0) | 2022.11.16 |
---|---|
#10 branch 전략 - git flow / trunk-based (1) | 2022.11.15 |
#8 Github2 - 타인과 협업하기 git clone, git pull (0) | 2022.11.12 |
#7 Github1 - 내 코드 올릴 때는 git push, remote repository, git ignore (0) | 2022.11.11 |
#6 git revert, reset, restore (0) | 2022.11.10 |
- Total
- Today
- Yesterday
- API
- Java8
- java
- 빅데이터
- 운영체제
- 알고리즘
- DART
- SQL
- node.js
- 코딩테스트
- 코테
- 빅데이터 분석기사
- SpringBoot
- spring
- OS
- Spring Boot
- 프로그래머스
- Phaser3
- jpa
- git
- MySQL
- Advanced Stream
- 자료구조
- nosql
- Stream
- MongoDB
- Phaser
- 프로세스
- 메모리
- db
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |