본문 바로가기

국비지원_핀테크

4일차_ GitHub에 브랜치 생성하기

 

 

 

 

 

GitHub 레포지토리에 브랜치 생성하기

 

 

실습용 레포지토리 생성

 

작업 디렉토리 2개 생성 후 kim-test 작업공간에서 메인 프로젝트 생성

 

kim 이 생성한 메인 프로젝트 add, commit

 

원격지 아까 생성한 레포지토리로 설정 후 push

 

git 의 브랜치는 master 가 존재, -a 옵션을 사용하면 원격지(GitHub)의 브랜치를 확인할 수 있다.

 

-a 옵션을 사용하여 로컬과 원격지의 모든 브랜치를 확인할 수 있다.

 

원격지에 브랜치를 생성하기 위해 일단 git 에 브랜치를 생성 후 확인

 

원격지에 kim 이라는 브랜치를 push 후 모든 브랜치 -a 옵션 사용하여 확인

 

GitHub 에 kim 이라는 브랜치가 추가된 것 확인

 

 

원격지의 브랜치를 삭제 ( -d 옵션 )

원격지 브랜치를 삭제하는 경우 -d 옵션을 사용하면 된다.

 

다시 kim 브랜치를 원격지에 push 하여 확인

 

git 에서 kim 브랜치로 전환 후 로그인에 관련된 코드를 모두 작성했다고 가정 후 add, commit

 

git 에서 github 로 kim 이라는 브랜치에 push ( 첫 push 이기 때문에 -u 옵션을 사용 )

 

master 브랜치에는 kim 이 push 한 파일이 보이지 않음

 

kim 브랜치로 이용하여 확인하니 보임

 

kim 이 로그아웃 기능까지 구현하였다고 가정 후 push

 

동일하게 kim 브랜치에서만 확인 가능하며 master 에는 push 되지 않았으므로 확인되지 않음

 

 

 

 

 

 

이번에는 cho 라는 사용자의 시점으로 전환하여 작업

 

clone 을 사용하여 메인 프로젝트를 내려받음

 

git 에는 master 라는 브랜치만 존재하지만, 원격지에는 kim 과 master 두 가지 브랜치가 존재

 

git 에서 cho 라는 브랜치 생성 후 원격지로 cho 브랜치를 push 한 모습

 

cho 브랜치가 push 된 모습

 

git 에서 cho 사용자로 전환 후 목록보기 기능을 구현했다고 가정한 뒤 add, commit

 

cho 라는 github 브랜치로 작업 내용을 push

 

github 에서는 cho 브랜치에서만 board-list.txt 확인 가능

 

게시판 수정 기능 구현했다고 가정 후 add, commit, github 로 push

 

cho 브랜치로 잘 push 된 모습

 

 

 

이제 kim 과 cho 의 프로젝트를 병합

 

현재 master 브랜치의 상황

 

kim 에서 먼저 git 의 master 브랜치로 switch 하여 kim 에서 작업한 내용 merge 한 이후 add, commit

 

github 의 master 브랜치로 작업 내용 push

 

kim 이 작업한 프로젝트 정상적으로 github 에 push 된 모습

 

cho 작업자도 git 에서 master 브랜치로 switch 하여 merge 후 add, commit 진행

 

원격지의 master 브랜치로 push 하려고 하였으나 아까 kim 에서 이미 작업한 내용을 push 해놨는데 현재 cho 의 git 에서 merge 한 master 브랜치는 kim 이 작업한 내용을 가지고 있지 않기 때문에 push 오류가 발생

 

github 에 master 브랜치에 올라간 내용을 pull 을 사용하여 변경내용을 내려받은 후 push 를 진행

 

정상적으로 push 되어 병합이 완료된 모습

 

 

다시 집에가서 이어서 작업한다고 가정

( home02 라는 디렉토리 생성 )

 

집에서 clone 을 사용하여 master 브랜치의 내용을 내려받은 후 kim 브랜치로 변경 ( git 브랜치에 kim 이 존재하지 않지만 원격지에는 kim, cho, master 브랜치가 존재하므로 git 에서 브랜치를 따로 생성하지 않아도 switch 를 사용하여 해당 브랜치로 변경할 수 있다 )

 

kim 사용자가 집에서 abcd.txt 라는 파일 작업을 한 뒤 github 의 kim 브랜치로 작업한 파일을 푸쉬한 모습

 

github 의 kim 브랜치에 abcd.txt 가 정상적으로 push 된 모습

 

 

만약 cho 작업자가 kim 이 작업한 내용을 pull 로 당겨오려는 경우

( 현재 kim 이 작업한 내용은 github 에 kim 브랜치에만 push 했다고 가정, master 브랜치에는 push 되지 않음 )

> cho 가 사용하는 local 작업 디렉토리에서 kim 브랜치로 변경 후 pull 로 당겨오면 된다.

브랜치를 변경하여 pull 로 당겨오는 경우 local 의 위치는 중요하지 않으며 현재 git 에서 사용하는 브랜치의 이름과 동일한 원격지의 브랜치의 작업물을 local 로 내려받게 된다.

 

 

 

 

 

 

 

 

 

 

 

실습 예제

 

 

 

 

 

 

1. 실습 풀이

github-test08 레포지토리 생성

 

작업공간 생성 후 git 에 등록, github 레포지토리로 원격지 등록

 

기본 프로젝트 생성 후 add, commit

 

master 브랜치로 push

 

master 브랜치 확인

 

 

2. 실습 풀이

a-people 브랜치, 작업공간 생성 및 원격지에 브랜치 push

 

a 가 작업한 내용 github 에 a 브랜치에 push

 

b 작업 공간 생성 후 b.txt 작업물 생성 add, commit

 

원격지에 b-people 브랜치 생성 후 생성된 github 브랜치에 push

 

생성된 b-people 브랜치에 작업물 추가된 모습

 

c 작업공간 생성 후 c-people 브랜치부터 생성

 

이번에는 c-people 브랜치부터 원격지로 push

 

c-people 원격지 생성된 모습

 

git 에서 c-people 브랜치로 이동하여 작업 후 github 의 c-people 브랜치에 push

 

작업물 c-people 브랜치에 정상적으로 올라간 모습

 

 

3. 실습 풀이

a 작업자가 master 브랜치에 작업물 merge

 

a 작업자가 github 의 master 브랜치에 작업물 push
b 작업자도 자신의 작업물을 git 에서 master 브랜치에 merge 하여 github 에 푸쉬하려고 하였으나, a 작업자가 먼저 올려놓은 작업물이 있으므로 pull 로 변경 작업물 땡겨온 후 push

 

각각 브랜치의 작업공간을 나눠놨기 때문에 git 의 브랜치 삭제는 생략하고 원격지 브랜치를 삭제

 

 

4. 실습 풀이

c-people 브랜치에서 작업물 pull 로 당겨온 후 c.txt 파일에 내용 추가 완료

 

모든 파일 master 브랜치로 merge 한 뒤 github 의 master 브랜치로 push

 

c-people 브랜치 원격지에서 삭제

 

 

 

 

 

 

 

 

GitHub 에 레포지토리를 생성할 때 프로젝트 이름과 동일하게 설정해줘야 한다.

( ※ clone 으로 프로젝트를 당겨왔을 때 생성되는 디렉토리는 GitHub 의 레포지토리의 이름으로 생성되기 때문에 코드를 실행할때 문제가 발생될 수 있다 ※ )

 

 

 

 

 

728x90