-
Github 기본 설명서 3편 :: 마이구미GitHub 2016. 7. 17. 15:20반응형
이번 글은 세번째 Git에 대한 글이다!
안 읽었다면 이전 글들을 읽고 오길 바란다.
지난 글에서도 언급했듯이 협업을 할 때 필요한 것들을 알아볼 것이다.
지난 글들에서의 간단한 흐름은 이렇다.
1. GitHub에 진행되는 프로젝트의 저장소가 존재한다.
2. 소스를 수정한다.
3. 로컬 저장소에서 원격저장소로 push한다.
그렇다면 협업이 실제로 개발이 진행될 때의 흐름을 알아보자.
1. GitHub에 진행되는 프로젝트의 저장소가 존재한다.
2. 브랜치를 생성한다.
3. 소스를 수정한다.
4. 로컬 저장소에서 원격저장소로 push한다.
위의 흐름에서 개인과 협업의 차이로 보면 "브랜치를 생성한다." 라는 걸 볼수 있다.
사실 상 개인적으로 사용할 때도 브랜치를 만들어 사용해도 되긴 된다.
하지만 이해를 좀 더 돕기 위해 구분하였다. (참고바람)
브랜치란 무엇인가 알아보자.
해석하면 가지라는 뜻이다.
나무에는 많은 가지들이 있다.
개발에서 바라보면 이렇게 큰 하나의 프로젝트에서 여러 개의 분기로 나누는 것을 연상시킨다.
예를 들어 최종적인 프로젝트가 있다고 한다. 하지만 다른 기능들을 업데이트하고 싶다.
그렇다고 최종적인 프로젝트를 바로 pull 땡겨서 수정하여 push 때릴 수 없다.
그럴 경우 브랜치를 하나 생성하여 거기서 수정 및 테스트를 하는 것이다.
기본적으로 Git은 초기에 master라는 브랜치가 설정되어있다.
이 master가 나무라고 보면 되고, 필요할 때마다 생성할 브랜치들을 가지라고 보면 된다.
한번 명령어를 통해 알아보자.
위와 같이 git branch 명령어는 로컬 저장소에서 있는 브랜치 현황이다.
*과 초록색 표시가 되어있는 것이 현재 사용하는 브랜치이다.
git branch -r 같은 경우는 원격 저장소에 있는 브랜치 현황이다.
이제 브랜치를 한번 만들어보자.
git checkout -b Branch_test 명령어를 통해 Branch_test라는 브랜치를 만들었다.
git branch 명령어를 통해 보면 현재 사용 중인 브랜치가 Branch_test로 변경되어있는 것을 알 수 있다.
로컬 저장소에 브랜치가 만들어졌다.
그렇다면 원격저장소에서도 만든 브랜치를 연결해야하지 않겠는가?
git push origin Branch_test
위의 명령어를 실행하고 GitHub 페이지에 가보자.
가보면 아래의 이미지처럼 branch가 2개가 되어있을 것이고, 브랜치가 생성되었다는 걸 알 수 있을 것이다.
그렇다면 새로 만든 브랜치를 통해 소스를 수정 후 push 해보자
git push origin Branch_test
GitHub 페이지에 들어가서 브랜치를 Branch_test로 변경해보면 방금 push 된 것이 적용되었는 것을 볼 수 있다.
하지만 브랜치를 master로 했을 경우 방금 push한 것은 적용이 안 되어있는 것을 확인할 수 있다.
이렇게 브랜치를 생성하여 분기를 나누어 관리하는 것이다.
그리곤 Branch_test를 master에 적용 할 때가 오지 않겠는가?
그럴 때 위 이미지에 New pull request 버튼을 이용한다.
버튼 클릭 시 위의 이미지가 나타날 것이다.
Create pull request 버튼 클릭 시 master와 합칠 것을 요청한다.
그렇다면 이 프로젝트의 관리자가 Merge pull request 버튼을 통해 합치거나,
다시 수정을 요구하기 위해 Close pull request 버튼을 통해 거절할 수 있다.
다시 큰 흐름을 보자면,
1. GitHub에 진행되는 프로젝트의 저장소가 존재한다.
2. 브랜치를 생성한다.
3. 소스를 수정한다.
4. 로컬 저장소에서 원격저장소로 push한다.
5. pull request를 날린다.
6. 관리자가 Merge 하면 합쳐지는 것이고, Close를 한다면 합쳐지지 않는다.
브랜치를 삭제할 경우 아래의 명령어를 이용할 수 있다.
git branch -D 브랜치명 // 로컬 저장소에서 브랜치 삭제
git push origin :브랜치명 // 원격 저장소 브랜치 삭제
직접 실습하여 이해하길 바란다.
Github 기본 설명서 1편
Github 기본 설명서 2편
반응형'GitHub' 카테고리의 다른 글
Github 다수 계정을 위한 SSH key 설정 :: 마이구미 (3) 2017.01.14 Github RSA host key 에러 :: 마이구미 (0) 2016.12.13 GitHub 403 Forbidden push 에러 :: 마이구미 (0) 2016.12.13 Github 기본 설명서 2편 :: 마이구미 (0) 2016.07.10 Github 기본 설명서 1편 :: 마이구미 (0) 2016.07.01