본문 바로가기
ICIA 수업일지

2021.10.26 수업일지(Github, Git)

by 주성씨 2021. 10. 26.

- Git bracnch 사용하기

개인적으로 프로젝트를 관리한다면 단순하게 github를 쓰는게 문제가 되지 않지만 팀을 이뤄서 작업을 한다면 수작업으로 모듈을 합치기에는 쉽지가 않다. master를 중심으로 팀원들의 branch를 나누고 팀원들은 branch를 중심으로 작업을 하게 된다. master는 그날 작업이 종료되면 merge를 하여 프로젝트 upload를 해야한다.

 

마스터를 포함한 3명의 인원으로 작업을 한다고 가정하자.

 

master는 설계 / 팀원 cat은 댓글관리, 회원관리 / dog은 파일업로드, 채팅 을 작업한다고 하자.

 

master 폴더에 board 폴더를 만들고

 

해당 폴더 안에 readme.txt를 만들어서 각 인원의 역할을 넣었다.

 

이제 github에서 board 프로젝트를 추가한다.

 

아래는 팀원들을 추가할 수 잇는 루트이다.

settings 클릭

 

manage access 부분에 add people

 

팀원들의 github 아이디 또는 이메일을 기입해서 추가한다.

 

이제 master가 해당 프로젝트에 로컬저장소의 프로젝트를 업로드하자.

board 폴더를 initialize하고 저장소를 지정한다.

// git init
user@DESKTOP-SR7QHGP MINGW64 /c/pc_master/board
$ git init
Initialized empty Git repository in C:/pc_master/board/.git/

// 저장소 지정
user@DESKTOP-SR7QHGP MINGW64 /c/pc_master/board (master)
$ git remote add origin https://github.com/username/projectName.git

// 모든파일 저장
user@DESKTOP-SR7QHGP MINGW64 /c/pc_master/board (master)
$ git add .

// 해당 commit 메시지
user@DESKTOP-SR7QHGP MINGW64 /c/pc_master/board (master)
$ git commit -m "project setting"

// master에 push
user@DESKTOP-SR7QHGP MINGW64 /c/pc_master/board (master)
$ git push origin master

 

업로드 확인

 

이제 팀원들이 내려받기를 해보겠다.

cat이 한다고 해보겠다.

// 목록 확인
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat
$ ls

// 프로젝트 cloning
// master의 project URI를 확인해수 clone을 한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat
$ git clone https://github.com/username/board.git

 

cloning 확인

 

cat이 댓글 기능을 작업한다고 했을때 reply.txt를 만들고 해당 파일을 업로드 해보겠다.

하지만 master가 아닌 branch가 업로드를 해야한다.

// cloning한 프로젝트 폴더에서 git bash를 한다.
// 해당 프로젝트의 list를 확인한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (master)
$ ls
readme.txt  reply.txt

// cat branch를 생성한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (master)
$ git branch cat

// branch list를 확인한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (master)
$ git branch
  cat
* master

// cat을 uploader로 설정한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (master)
$ git checkout cat
Switched to branch 'cat'

// cat으로 변경됨을 확인한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat) <<< cat 변경 확인
$

 

// reply.txt를 수정한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat)
$ ls
readme.txt  reply.txt

// 해당 프로젝트의 모든파일 upload
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat)
$ git add .

// 해당 기능의 설명을 messaging 한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat)
$ git commit -m "reply func 01"
[cat eb1780b] reply func 01
 1 file changed, 1 insertion(+)
 create mode 100644 reply.txt

// master가 아니라 branch로 push 한다.
user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat)
$ git push origin cat
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 279 bytes | 279.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'cat' on GitHub by visiting:
remote:      https://github.com/jufred89/board/pull/new/cat
remote:
To https://github.com/jufred89/board.git
 * [new branch]      cat -> cat

user@DESKTOP-SR7QHGP MINGW64 /c/pc_cat/board (cat)
$

 

이제 github에 들어가서 branch cat이 생성됨을 확인한다.

barnch cat 확인

 

이제 branch에 업로드한 파일을 팀장이 merge하면 된다.

cat branch에 reply.txt 가 올려져 있는 것을 확인하고 branches를 클릭한다.

 

새로운 요청을 확인하고 가지고 온다.

 

클릭

 

클릭

 

클릭

 

merge 확인

 

이제 해당 프로젝트 main으로 들어가면 cat 이 추가한 reply.txt가 merge 되었음을 확인할 수 있다.

merge 확인

 


 

당일 프로젝트가 끝나면 이와 같이 프로젝트 팀원들의 branch를 확인하고 master가 merge하면 되고 다음날이 되면 해당 merge된 프로젝트를 pull하면 된다.