멍발자의 개발
협업을 위한 Github 본문
파이널 프로젝트를 앞두고 팀원들과 원활한 소통을 위해 깃허브를 쓰기로 했다.
사용법을 대략적으로 정리해 보려고 한다.
[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 내역을 받았는지 확인한다.
* 남들이 올린 프로젝트도 클론해서 다운해 볼 수 있다.
'코딩테스트 > 고뇌의 순간들' 카테고리의 다른 글
SVN 사용법 (0) | 2022.11.04 |
---|---|
코드 분석 공부 (1) (0) | 2022.11.01 |
오류 해결) 톰캣 오류 실행 (0) | 2022.07.12 |
Git과 GitHub (0) | 2022.05.28 |
오류 해결) IO 오류: The Network Adapter could not establish the connection (0) | 2022.05.26 |