멍발자의 개발

협업을 위한 Github 본문

코딩테스트/고뇌의 순간들

협업을 위한 Github

개발하는 멍발자 2022. 9. 20. 01:04

파이널 프로젝트를 앞두고 팀원들과 원활한 소통을 위해 깃허브를 쓰기로 했다.

사용법을 대략적으로 정리해 보려고 한다.

 

[Git]

- 소스코드 및 프로젝트 파일의 버전 관리

- 이전에 저장된 시점으로 복원 가능

- 적은 메모리 공간 사용

 

[Github]

- git을 기반으로 여러 사람이 프로젝트 파일을 공유/관리 할 수 있게 지원하는 서비스

- 팀원들과 프로젝트 파일을 공유

- 프로젝트 관리 기능

- 다양한 오픈소스 프로젝트 공개

 

[용어]

깃허브에 업로드 : push

깃허브에서 다운 : pull

깃으로 파일이 공유 + 관리되는 공간을 repository라고 한다.

팀원들이 공유할 수 있는 원격 저장소 : remote repository

내 컴퓨터에서 관리되는 공간 : local repository

commit 작업을 하지 않은 채로 push 작업만을 진행 : push Branch master 

commit 작업 후 push 작업을 진행 : commit and push

 

[git 사용법 기초]

프로젝트 클릭 > team > share project > repository create 설정

완료됐으면 올라가지 않은 파일들은 "?" 표시가 뜬다.

 

[파일 업로드]

team > add to index > 실제로 저장을 하겠다 "Commit" 클릭 >

Staged Changes (내가 현재 저장할 파일 목록이 뜬다) > Commit Message에는 첫번째 저장 or 기능 같은 설명을 추가해 주면 좋다. > 메시지 입력 후 Commit 클릭 

 

[수정 파일 업로드]

team > add to index > Staged Changes에 파일명이 뜬다 >  Commit Message에 수정된 부분 설명 넣기 > Commit

 

[다시 새로운 파일]

깃에 올라가지 않은 파일이면 "?" 표시가 뜬다. > team > add to index (지금 저장할 목록에 올려줌) > Staged Changes에 올라온다 >  Commit Message에 설명 넣기 > Commit

 

여기까지 총 세 번의 Commit을 진행하였다. = 스냅샷을 총 세 번 찍은 것

 

[파일이 제대로 올라갔는지 확인]

Team > Show in History 클릭 > 그동안 저장한 이력들이 목록으로 나온다.

 

[원하는 시점으로 복원]

돌아가고 싶은 시점 선택 > 눌러서 오른쪽 클릭 > Reset > Hard 클릭 > 경고창 > Reset > 복원 완료 

 

 

[Github 사용법 기초]

서로 자기가 작업한 내역들을 공유할 수 있도록 도움을 주는 공간 : Remote repository

 

출처 : 스마트인재개발원 인쌤TV, https://youtu.be/8gyquB3VNNs

 

[팀장 과정]

 

깃허브 접속 > 로그인 > 원격 저장소 (팀장이 일반적으로 만든다)

 

[원격저장소]

대표로 누군가 오른쪽 상단 + 버튼을 눌러 New repository 를 클릭한다.

Repository name에 저장소로 쓸 이름을 설정한다.

Description : 설명을 넣을 수 있다.

Public : 아무에게나 다 보여줄 수 있다. (무료 사용)

Private :  팀원, 일부 사람들이 볼 수 있다. (최소 인원 넘어가면 금액 지불)

대개 Public을 쓰는 것을 권장한다.

> Create repository 버튼을 클릭하면 완성.

 

[팀원 초대]

HTTPS : ~ = 작업하는 코드를 올리는 원격 저장소의 주소

> 복사 > 오른쪽 상단에 있는 Setting 메뉴 > Manage access > Invite a collaborator > 팀원들 초대

> Add (초대 팀원) to (레파지토리 이름) > 클릭 > 각자 팀원들은 메일로 초대 메일이 갔을 테니 수락을 누르면 된다.

 

[최초의 프로젝트 중, 파일 하나 업로드]

업로드 할 초기의 프로젝트 파일 클릭 > Team > Push Branch 'master' 클릭 > 

원격 저장소에 나의 프로젝트를 업로드 할 수 있다 > URL에 아까 복사한 원격 저장소의 주소를 넣으면 된다.

> User와 Password에 깃허브 ID와 비밀번호를 넣어주면 된다. Store in Secure Store 클릭 > Preview 클릭 > 다시 Preview 클릭 > Push 클릭 > 깃허브를 확인하면 Remote repository에 다 올라갔다.

 

[프로젝트 전체]

 

Team > add to index > 다시 Team > commit 클릭 > 프로젝트 관련된 전체 파일 목록이 Staged Changes에 나와있다.

> Commit Message 작성 > 오른쪽 하단에 Commit과 동시에 Push까지 진행하고 싶으면 Commit and Push 클릭

> 아이디 비번 계정 입력창 입력 > 다시 깃허브 사이트를 가보면 온전한 프로젝트가 올라왔을 것이다.

> 나머지 팀원들은 이 프로젝트를 다운해서 작업하면 된다.

 

[팀원 과정] 

 

최초로 깃허브에서 프로젝트를 불러오는 것 = Clone

Clone 작업을 통해 기본 베이스 프로젝트를 받아온 다음에 푸쉬와 풀을 진행한다.

Import project 클릭 > Git 클릭 > Project from Git > Clone URI 클릭 > 깃허브에 접속해서 다운할 프로젝트에서 Clone or Download 클릭 > URL 복사 > 다시 스프링으로 돌아가서 URI에 해당 주소를 붙여넣기 한다. > next > next > 이제부터가 중요함!! > 복제해 온 프로젝트를 어디에 저장할 건지 지정! > Destination의 Directory에 자동으로 사용자 계정 폴더의 Git이라는 폴더에 저장된다. browse에서 다른 경로로 저장해도 된다 > next > next > finish > 프로젝트 확인 가능

 

[둘 사이에 push와 pull]

팀원이 무언가를 작업한 경우

[수정 파일]

team > add to index > team > commit 클릭 > Staged Chages 목록 확인 > 커밋 메시지 확인 > commit 클릭

[새로 만든 파일] 

team > add to index > Unstaged Changes에서 Staged Changes로 파일명 이동 > 커밋 메시지 작성 > 커밋

 

// 여기까지 총 두 번의 커밋을 진행했다.

commit한 2건에 관해서 업로드를 해라! 라는 뜻으로 프로젝트에 (↑+숫자)가 뜬다.

다른 팀원들과 공유할 수 있는 건수가 2건이라는 뜻.

> 이것들을 Push해야 한다 (팀원들과 공유해야 한다.)

 

[Push 과정]

프로젝트 우측 클릭 > Team > Push Branch 'master'  클릭 > push > 오른쪽 하단부에 로딩되면서 push가 완료됨.

 

[Pull 과정]

pull할 기능이 있는지 없는지 확인 위해 프로젝트 우측 클릭 > Team > Synchronize Workspace >

> (↓+ 숫자) 깃허브와 동기화를 통해서 Pull 받아야 하는 갯수를 알려준다. > team > pull 클릭 > close 완료

 

[충돌]

둘이서 같은 파일 + 같은 코드 작업할 때 충돌이 발생하는 경우 (기존에 내가 했던 코드와 팀원의 코드가 달라서 충돌이 일어남) 

 

빨간 에러와 함께 <<<<  HEAD와 ===== 사이는 내가 Commit을 했던 내역이고 

======부터 >>>>>>까지는 원격저장소에서 내려온 pull을 받은 내용이다.

 

해결 방법 : 사용할 걸 골라서 나머지는 지운다.

 

여전히 빨간줄이 뜬다 > commit을 진행하면 충돌을 수정한 이력이 생긴다. 

> team > commit > unstaged changes에 있는 충돌 파일을 끌어다가 staged changes에 옮긴다. >

commit 클릭 > 빨간줄이 다 없어진다. > 충돌까지 해결했으면 push해야 할  (↑+숫자)가 뜬다. >

프로젝트 우측 클릭 > Team > Push Branch 'master'  클릭 > push

 

 

[Github 팀원들과 사용시 주의할 점]

- 처음에는 충돌이 일어날 수 있으니 각자 작업하는 클래스를 분리해서 역할 분담하기

- pull을 받기 전에는 내가 작업 중이던 파일을 commit 한다.

- push 전에는 내가 github에서 모든 pull 내역을 받았는지 확인한다.

 

* 남들이 올린 프로젝트도 클론해서 다운해 볼 수 있다.

 

 

 

Comments