SlideShare uma empresa Scribd logo
1 de 21
GITHUB 사용법
MADE BY 김민수(11) 중앙대학교 컴퓨터공학부
-FOR CIEN
1. 목차
• 1. 목차
• 2. 제작 목적
• 3. GITHUB 가입
• 4. 프로그램 설치 및 사용법
• 4-1. Github For Windows
• 4-2. SorceTree
• 5. 용어 설명
• 6. GITHUB 홈페이지 기능
• 7. 마치며
2. 제작 목적
• 이 문서는 CIEN 신입 회원들이 팀 프로젝트를 원활하게 진행할 수 있
도록 가장 기초적인 GitHub을 사용할 수 있도록 도와준다.
• 신입 회원이 들어올 때마다 같은 내용을 반복해야 하는 번거로움을 줄
이기 위해 문서로 작성하였다.
• 기획, 그래픽, 프로그래밍 팀에 상관없이 모두 사용할 수 있도록 쉬운
말로 제작하려 노력하였다.
3. GITHUB 홈페이지 가입(1)
• https://github.com/ 에 접속
• Sign up 버튼 클릭
• Username은 본명이 아닌 원하는 닉네임을 입력
• Email은 실제로 많은 정보를 받기 때문에 사용하는 Email을 적는다.
• Create an account 클릭
• 기본으로 Free모드로 선택되어 있다. Finish sign up 클릭!
3. GITHUB 홈페이지 가입(2)
• 우측 상단에 Settings 클릭 – Emails 클릭 – Send verification email
클릭
• 링크를 클릭 후 Confirm 클릭
• 가입 완료!
4. 프로그램 설치
• GitHub 회원가입을 끝냈으면 팀 프로젝트를 진행하기 위해서 프로그램을 설
치해야 한다.
• 이 문서에서는 대표적인 두 가지 프로그램에 대해 간략하게 설명한다.
• Github에서 지원하는 Github For Windows 와 시각화를 가장 잘해둔
SourceTree이다.
• 이 진행 과정은 모두 Window 기준이기 때문에 기타 OS에서는 다를 수도 있
다.
• 브라우저는 모두 CHROME으로 진행한다.
4-1 GITHUB FOR WINDOWS (1)
• https://windows.github.com/ 에 접속
• Download GitHub for Windows 클릭
• 설치 후 위에서 가입한 GitHub 닉네임 혹은
E-mail 입력
4-1 GITHUB FOR WINDOWS (2)
• Add (기존에 자신이 만들어 둔 프로젝트를 추가)
• Create (새로운 프로젝트를 제작)
• Clone (다른 사람이 올린 프로젝트를 받아옴)
• 지금은 Create로 프로젝트를 만들어 보겠다. (현재 새로 만든 아이디는 참여한(join) 프로젝트가 없기 때문이다.
만약 가입 후 바로 Cien이 관리하는 Project에 참여(join)했다면 Clone으로 받아오도록 한다.)
• Git ignore란?
git은 기본적으로 남들과 함께 프로젝트를 진행하기 위한 툴이다. 그렇기 때문에 개인 설정파일이나 특정 언어에서 발생하는 불필요한 파일들은 공유할 필요가 없다.
(ex. Java의 class파일, unity의 setting 관련 파일,image의 thumb.db파일 등)
이러한 파일들을 자동적으로 공유하지 않도록 해주는 것이 git ignore이다. 프로젝트를 만들어 보면 알겠지만
.gitignore 라는 확장자로 파일이 만들어지며
Github For windows에서는 이를 편하게 자동적으로 만들어 준다.
4-1 GITHUB FOR WINDOWS (3)
• 지금은 unity로 만들어보겠다. Unity를 찾아서 클릭한 뒤 Create Repository를 누른다.
• 정말 편리하게도 공유되면 안 되는 파일들은 전부 .gitignore에 추가되었다.
• master : 뒤에 설명할 branch라는 것이다. 같은 프로젝트를 똑같은 사람이 수정한다면 많은 문제가 발생할 수
있다. (같은 파일을 동시에 수정해서 올린다면?) 따라서 branch 즉 가지를 나눠서 작업을 보통 진행한다.) 처음
기본 branch는 master이다.
• Unsynced changes : 영어를 그대로 해석하면 아직 동기화되지 않은 변화라는 뜻으로 현재 수정한 파일들이 아
직 원격으로는 반영이 되지 않았다는 뜻이다. 즉, 내가 수정한 파일들을 아직 다른 사람들이 보지 못한다.
• Publish Repository : 처음 프로젝트를 Create하면 아직 Github홈페이지에 이 프로젝트가 올라가지 않은 상태
이다. Publish Repository를 누르면 Github에 프로젝트가 등록된다. 즉, 다른 사람들이 이 프로젝트를 볼 수 있
다.
• Publish Repository를 누른 뒤 Desciption(이 프로젝트에 대한 설명) 을 간략하게 적고 Publish TestProject를
누르면 Github에 올라간다.
4-1 GITHUB FOR WINDOWS (4)
• 기본적인 설치 경로는 문서 – GitHub 폴더 이다.
• 아무 파일이나 하나 추가해보면 혹은 기존의 파일을 수정하면 Uncommitted Changes가 생긴다.
• 여기선 Commit Test라는 txt파일을 추가해 보았다.
• Summary에 지금 수정한 내용들에 대한 포괄적인 요약을 적고 Description에 상세한 내용을 적어준다. (생략 가
능)
• 커밋할 파일을 체크한 뒤 Commit to master를 누르면 unsynced changes가 생긴다.
• 우측 상단에 Sync를 누르면 Github 홈페이지에서도 확인이 가능하고, 다른 상대방들도 자신이 수정한 내용을
열람할 수 있다. (Commit to Master만 한 상태에서는 자신만 확인 가능하고, 다른 사람들은 보지 못한다.)
4-2 SOURCETREE (1)
• https://www.sourcetreeapp.com/ 에서 SourceTree를 설치한다.
• 설치 과정 중 Github 아이디와 암호를 입력하는 단계가 나온다.
• 언어 설정은 영어를 기준으로 진행한다. 한글로 보면 오히려 어색한
부분이 많기 때문에 영어로 설정을 바꾼 뒤 진행하는 것을 추천한다.
• Clone/New 버튼을 클릭한다! 그러면 경로를 입력하라는 창을 보게
될 것이다.
4-2 SOURCETREE (2)
• 사진에 보이는 지역을 보면 Clone을 위한 URL을 제공한다. 버튼을 눌러서 주소를 복사한 뒤 적는다.
• Clone을 클릭하면 정해진 경로에 해당 프로젝트를 받아온다.
4-2 SOURCETREE (3)
• 아까 Github For Windows에서 했던 작업이 그대로 나타난 것을 확인 할 수 있다.
• SourceTree에서도 비슷한 방법으로 프로젝트를 만들거나, 기존의 프로젝트를 불러
올 수 도 있다.
• 하지만 대게 기존에 존재하는 프로젝트를 받아와서 진행하는 경우가 전부이다.
• 적어도 CIEN 프로젝트를 진행함에 있어서 Clone 이외의 버튼을 누를 일은 적을 것
이라고 생각한다.
• 또, 새로운 프로젝트를 만드는 과정은 Github For Windows에서 지원하는 기본
gitignore가 편리하기 때문에 굳이 SourceTree로 통해 할 필요가 없다.
• SourcTree는 GUI가 잘 되어있고 보기가 좋아 사용하는 툴이다.
4-2 SOURCETREE (4)
• SourceTree에서 받은 경로를 찾아간 다음에 두번째 파일을 추가해 보았다. Uncommited
changes라는 문구가 뜨면서 밑에는 Unstaged Files에 추가한 파일이 나타난다.
• Unstaged Files를 체크하면 자동으로 Staged File에 올라간다. 그 뒤 Commit 버튼을 누르
고 아래와 같이 Commit버튼을 누르면 Commit이 완료된다.
4-2 SOURCETREE (5)
• Commit이 완료되면 Push에 1이라는 숫자가 적혀있는 것을 확인할 수 있다.
이는 아직 다른 사람들이 수정 내역을 볼 수 없다는 뜻이다.
• Push를 눌러서 OK를 눌러준다.
• GitHub For Windows에서도 변경 내역이 같이 보이는 것을 확인할 수 있다.
(우측 상단의 Sync버튼을 눌러야 최신내용으로 나타난다.)
5. 용어 설명
• Commit: 기존의 파일을 변경하거나 새로운 파일의 추가 등의 변화를 가한 뒤 자신의 로컬 저장소에 올리는 것을 의미한다. 로컬 즉, 자신의 컴퓨터에서만 볼 수 있기 때
문에 다른 사람은 확인할 수가 없다.
• Push: Commit을 통하여 로컬 저장소에 올린 변경 내용들을 다른 사람들이 볼 수 있도록 원격 저장소에 올리는 것을 의미한다.
• Fetch: 다른 사람이 Push한 것은 실시간으로 반영되지 않는다. 다른 사람이 Push한 것을 확인하기 위해선 수시로 Fetch를 해준다. Fetch는 원격저장소의 변경 내용을
자신의 로컬 저장소로 가져온다.
• Pull: Fetch를 하면 최신 변경 내용들이 반영된다. 만약 자신이 작업하고 있는 환경에서 직접 변경 내용을 적용시키고 싶다면 Pull을 해준다. (Fetch는 변경 내용이 있다
는 것을 알려주는 것이지, 지금 자신이 작업하고 있는 환경을 변화시키는 것을 의미하지 않는다.)
• Sync: Github For Windows에서 사용하는 용어로 Push, Fetch 처럼 로컬 저장소와 원격 저장소 사이의 동기화하는 작업을 통 틀어서 의미한다. (Push+Fetch)
• Publish: Project를 원격저장소에 올리는 작업을 Publish라 한다. (Github For windows에서 사용)
• Branch: branch란, 예를 들어 같은 프로젝트 안에서 서로 맡은 일에 따라 진행하다가 만약 같은 파일을 수정하게 된다면 push할 때 충돌이 발생하게 된다. 이를 방지하
기 위해 branch라는 자신만의 공간을 만들어서 다른 사람과 당장은 충돌이 발생하지 않도록 하는 수단이다.
• Merge: branch를 각자 나누어서 작업을 했다면, 서로 일이 다 끝났을 때는 합쳐야 하나의 프로젝트로 적용이 될 것이다. 서로 겹치는 부분에 대한 충돌을 체크하고, 하
나로 합치는 과정을 Merge라 한다.
• CheckOut: 다른 사람의 Branch를 보고 싶을 때, 그 branch를 받아 오는 것을 checkout이라 한다.
• Revert: GitHub For windows에서 사용하는 용어로, 현재 보고 있는 Commit(Push)내용의 변화를 전부 되돌리고(그 전 단계로) 그것을 하나의 커밋으로 올린다.
6. GITHUB 홈페이지 기능(1)
• 우측을 보면 Code, Issues, Pull requests, Wiki, Pulse, Graphs , Settings
가 있다.
• Code는 현재 보이는 화면으로 현재 기본 branch로 master가 선택되어있음
을 알 수 있고 (즉, 기본 branch는 변경 가능하다) 현재까지 이 branch의
commit 개수가 5개이며, branch의 총 개수가 1개라는 것을 알려준다.
Release는 이 프로젝트의 배포 단계를 말하는 것으로 제대로 작동하게 해둔
프로젝트를 지정해준다. (예를 들어 게임에서 v0.1, v0.2, v1.0 등으로 단계
별로 올려나면서 패치하는 것(릴리즈 하는 것)을 의미한다.)
• Contributors는 이 프로젝트에 참여한 사람의 수를 의미한다.
• Contributors를 클릭하면 자동으로 Graphs 화면으로 넘어간다.
6. GITHUB 홈페이지 기능(2)
• Issues를 클릭하면 Issues창이 뜬다.
• 예를 들어 개발자1은 전투 로직를 개발하고, 개발자2는 이벤트를 개발하고, 개발자3는 UI를 개발하기로 하였다 하면, 이 Issue를
지정하여 각자 맡은 일이 무엇인지를 정해둘 수 있다. 즉, 다른 사람이 같은 일을 겹치게 하지 않도록 방지하는 역할을 할 수 있다.
• New Issue를 클릭하면 나오는 화면이다.
• Labels는 이 일이 어떤 종류인지를 정한다. 예를 들자면 어떤 로직에서 벅그가 발생하여 그 버그를 수정해야 하는 일이라면
labels은 bug fix가 될 것이다. 이 labels은 임의로 추가 및 수정이 가능하다.
• Milestone은 이 일이 어떤 버전에 해당하는 일인지를 할당한다. 예를 들어 v0.2에서 끝냈어야 할 로직에서 문제가 발생했다면 이
이슈는 v0.2가 될 것이다. Milestone은 역시 임의로 추가 수정이 가능하다.
• Assignee는 누가 이 일을 할지에 대한 지정이다. Issue를 관리하는 팀장이 이슈를 만들고 각자 할 일을 부여하는 것이다.
• Issue를 완료 했다면 Close Issue를 누르면 Closed issue로 넘어가면서 Issue가 닫아진다. 나중에 다시 열 수도 있다.
6. GITHUB 홈페이지 기능(3)
• Pull Request는 줄여서 PR이라고 사용한다.
• 각 Repository마다 참여자를 지정할 수 있다. 하지만 만약 참여자로 지정되지 않아
권한이 없다고 해도 그 프로젝트에 참여할 수 있다.
• 그 방법이 PR로 수정한 파일들을 바로 Push하는 것이 아니라 PR을 통해 이렇게 이
렇게 수정해서 더 개선하였으니 적용시켜 주십시오 라는 요청을 보내는 것이다.
• CIEN 프로젝트에서는 참여자들은 전부 권한을 가지고 있기 때문에 또 사전에 미리
이야기를 진행하기 때문에 아직까진 사용하지 않는 기능이지만, 사실 PR을 통해 미
리 코드를 읽어 보고 고쳐야 할 점을 서로 지적한 다음에 완벽한 코드로써 프로젝트
에 적용시킨다는 점에서 언젠가 활용해야 할 기능 중 하나이다.
6. GITHUB 홈페이지 기능(4)
• Wiki는 흔히 아는 그 Wiki가 맞다. 다른 사람들이 이 프로젝트의 진행 상황이나 어떤
프로젝트인지를 알고 싶으면 이 문서를 참고하면 된다.
• 사용할지 안 할지는 자유이나, CIEN에서는 따로 Wiki를 운영하고 있기 때문에 굳이
Github에서 지원하는 Wiki를 사용할 필요는 없어 보인다. 하지만, 다른 프로젝트를
참고해야 할 일이 있을 때 잘 정리되어있는 문서를 보면서 매우 만족하는 경우도 많
다.
• Pulse나 Graph의 경우 이 프로젝트가 활발하게 진행되고 있는지, 누가 참여를 하고
있는지, 얼마나 열심히 하는지 등을 볼 수 있도록 분석해주는 페이지 이다. 가장
Commit을 많이 한 사람, 4월에 가장 많이 한 사람 등을 가려낼 수 있기 때문에 누가
놀면서 일을 안하고 있다면 응징의 철퇴를 내릴 수 있다.
7. 마치며
• 기본적으로 프로젝트에 참여할 수 있도록 기능들을 적어놨다.
• 하지만 아직 좀 더 실용적인 기술들이 남아있다. (커밋을 실수로 했을
때?, 커밋 여러 개를 한 번에 합쳐서 올리고 싶을 때?, Merge할 때 충
돌에 대한 쉬운 해결법?, Fork란?, Rebase란? 등등..)
• 이러한 기술들은 다음 Git 발표에서 다루도록 하겠다.
• 모두들 방학에 꼭 프로젝트를 완성시킬 수 있으면 좋겠다.

Mais conteúdo relacionado

Mais procurados

Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)승용 윤
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git민태 김
 
git, 이해부터 활용까지
git, 이해부터 활용까지git, 이해부터 활용까지
git, 이해부터 활용까지jylee1229
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴은아 정
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
Git 사용 가이드
Git 사용 가이드Git 사용 가이드
Git 사용 가이드도형 임
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2Choulhyouc Lee
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
Git 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitGit 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitSeongSik Kim
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기우영 주
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서jungseob shin
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Dabi Ahn
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기Kim Byoungsu
 

Mais procurados (20)

Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
git, 이해부터 활용까지
git, 이해부터 활용까지git, 이해부터 활용까지
git, 이해부터 활용까지
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
Git 사용 가이드
Git 사용 가이드Git 사용 가이드
Git 사용 가이드
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Git 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with gitGit 사용법 공유 + Unity3D with git
Git 사용법 공유 + Unity3D with git
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
11. git basic
11. git basic11. git basic
11. git basic
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서
 
Git tutorials
Git tutorialsGit tutorials
Git tutorials
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
Git 강별
Git   강별Git   강별
Git 강별
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
 
Git
GitGit
Git
 

Semelhante a How to use Github? (For Cien)

[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법주형 고
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)NAVER D2
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3XpressEngine
 
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습 [숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습 Soongsil University
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
Git cooperation
Git cooperationGit cooperation
Git cooperation민정 김
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Jae-yeol Lee
 
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기KyeongmanKang
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1Hansol Kang
 
Digging github
Digging githubDigging github
Digging githubHansol Lim
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기Wooyoung Ko
 
Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Suho Lee
 
201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의Joohyun Han
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님NAVER D2
 
GitHub 활용하기
GitHub 활용하기GitHub 활용하기
GitHub 활용하기DataUs
 

Semelhante a How to use Github? (For Cien) (20)

[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법소스트리(SourceTree)로 배우는 Git 사용법
소스트리(SourceTree)로 배우는 Git 사용법
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3
 
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습 [숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
[숭실대학교 SODA]깃(git) 명령 및 소스트리(sourceTree) 실습
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
Git cooperation
Git cooperationGit cooperation
Git cooperation
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
Digging github
Digging githubDigging github
Digging github
 
Git lecture1
Git lecture1Git lecture1
Git lecture1
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기리스펙토링 세미나 - Git, Github 알아보기
리스펙토링 세미나 - Git, Github 알아보기
 
Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?
 
201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의201017 한주현 생물정보학 github 강의
201017 한주현 생물정보학 github 강의
 
Git command
Git commandGit command
Git command
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
GitHub 활용하기
GitHub 활용하기GitHub 활용하기
GitHub 활용하기
 

How to use Github? (For Cien)

  • 1. GITHUB 사용법 MADE BY 김민수(11) 중앙대학교 컴퓨터공학부 -FOR CIEN
  • 2. 1. 목차 • 1. 목차 • 2. 제작 목적 • 3. GITHUB 가입 • 4. 프로그램 설치 및 사용법 • 4-1. Github For Windows • 4-2. SorceTree • 5. 용어 설명 • 6. GITHUB 홈페이지 기능 • 7. 마치며
  • 3. 2. 제작 목적 • 이 문서는 CIEN 신입 회원들이 팀 프로젝트를 원활하게 진행할 수 있 도록 가장 기초적인 GitHub을 사용할 수 있도록 도와준다. • 신입 회원이 들어올 때마다 같은 내용을 반복해야 하는 번거로움을 줄 이기 위해 문서로 작성하였다. • 기획, 그래픽, 프로그래밍 팀에 상관없이 모두 사용할 수 있도록 쉬운 말로 제작하려 노력하였다.
  • 4. 3. GITHUB 홈페이지 가입(1) • https://github.com/ 에 접속 • Sign up 버튼 클릭 • Username은 본명이 아닌 원하는 닉네임을 입력 • Email은 실제로 많은 정보를 받기 때문에 사용하는 Email을 적는다. • Create an account 클릭 • 기본으로 Free모드로 선택되어 있다. Finish sign up 클릭!
  • 5. 3. GITHUB 홈페이지 가입(2) • 우측 상단에 Settings 클릭 – Emails 클릭 – Send verification email 클릭 • 링크를 클릭 후 Confirm 클릭 • 가입 완료!
  • 6. 4. 프로그램 설치 • GitHub 회원가입을 끝냈으면 팀 프로젝트를 진행하기 위해서 프로그램을 설 치해야 한다. • 이 문서에서는 대표적인 두 가지 프로그램에 대해 간략하게 설명한다. • Github에서 지원하는 Github For Windows 와 시각화를 가장 잘해둔 SourceTree이다. • 이 진행 과정은 모두 Window 기준이기 때문에 기타 OS에서는 다를 수도 있 다. • 브라우저는 모두 CHROME으로 진행한다.
  • 7. 4-1 GITHUB FOR WINDOWS (1) • https://windows.github.com/ 에 접속 • Download GitHub for Windows 클릭 • 설치 후 위에서 가입한 GitHub 닉네임 혹은 E-mail 입력
  • 8. 4-1 GITHUB FOR WINDOWS (2) • Add (기존에 자신이 만들어 둔 프로젝트를 추가) • Create (새로운 프로젝트를 제작) • Clone (다른 사람이 올린 프로젝트를 받아옴) • 지금은 Create로 프로젝트를 만들어 보겠다. (현재 새로 만든 아이디는 참여한(join) 프로젝트가 없기 때문이다. 만약 가입 후 바로 Cien이 관리하는 Project에 참여(join)했다면 Clone으로 받아오도록 한다.) • Git ignore란? git은 기본적으로 남들과 함께 프로젝트를 진행하기 위한 툴이다. 그렇기 때문에 개인 설정파일이나 특정 언어에서 발생하는 불필요한 파일들은 공유할 필요가 없다. (ex. Java의 class파일, unity의 setting 관련 파일,image의 thumb.db파일 등) 이러한 파일들을 자동적으로 공유하지 않도록 해주는 것이 git ignore이다. 프로젝트를 만들어 보면 알겠지만 .gitignore 라는 확장자로 파일이 만들어지며 Github For windows에서는 이를 편하게 자동적으로 만들어 준다.
  • 9. 4-1 GITHUB FOR WINDOWS (3) • 지금은 unity로 만들어보겠다. Unity를 찾아서 클릭한 뒤 Create Repository를 누른다. • 정말 편리하게도 공유되면 안 되는 파일들은 전부 .gitignore에 추가되었다. • master : 뒤에 설명할 branch라는 것이다. 같은 프로젝트를 똑같은 사람이 수정한다면 많은 문제가 발생할 수 있다. (같은 파일을 동시에 수정해서 올린다면?) 따라서 branch 즉 가지를 나눠서 작업을 보통 진행한다.) 처음 기본 branch는 master이다. • Unsynced changes : 영어를 그대로 해석하면 아직 동기화되지 않은 변화라는 뜻으로 현재 수정한 파일들이 아 직 원격으로는 반영이 되지 않았다는 뜻이다. 즉, 내가 수정한 파일들을 아직 다른 사람들이 보지 못한다. • Publish Repository : 처음 프로젝트를 Create하면 아직 Github홈페이지에 이 프로젝트가 올라가지 않은 상태 이다. Publish Repository를 누르면 Github에 프로젝트가 등록된다. 즉, 다른 사람들이 이 프로젝트를 볼 수 있 다. • Publish Repository를 누른 뒤 Desciption(이 프로젝트에 대한 설명) 을 간략하게 적고 Publish TestProject를 누르면 Github에 올라간다.
  • 10. 4-1 GITHUB FOR WINDOWS (4) • 기본적인 설치 경로는 문서 – GitHub 폴더 이다. • 아무 파일이나 하나 추가해보면 혹은 기존의 파일을 수정하면 Uncommitted Changes가 생긴다. • 여기선 Commit Test라는 txt파일을 추가해 보았다. • Summary에 지금 수정한 내용들에 대한 포괄적인 요약을 적고 Description에 상세한 내용을 적어준다. (생략 가 능) • 커밋할 파일을 체크한 뒤 Commit to master를 누르면 unsynced changes가 생긴다. • 우측 상단에 Sync를 누르면 Github 홈페이지에서도 확인이 가능하고, 다른 상대방들도 자신이 수정한 내용을 열람할 수 있다. (Commit to Master만 한 상태에서는 자신만 확인 가능하고, 다른 사람들은 보지 못한다.)
  • 11. 4-2 SOURCETREE (1) • https://www.sourcetreeapp.com/ 에서 SourceTree를 설치한다. • 설치 과정 중 Github 아이디와 암호를 입력하는 단계가 나온다. • 언어 설정은 영어를 기준으로 진행한다. 한글로 보면 오히려 어색한 부분이 많기 때문에 영어로 설정을 바꾼 뒤 진행하는 것을 추천한다. • Clone/New 버튼을 클릭한다! 그러면 경로를 입력하라는 창을 보게 될 것이다.
  • 12. 4-2 SOURCETREE (2) • 사진에 보이는 지역을 보면 Clone을 위한 URL을 제공한다. 버튼을 눌러서 주소를 복사한 뒤 적는다. • Clone을 클릭하면 정해진 경로에 해당 프로젝트를 받아온다.
  • 13. 4-2 SOURCETREE (3) • 아까 Github For Windows에서 했던 작업이 그대로 나타난 것을 확인 할 수 있다. • SourceTree에서도 비슷한 방법으로 프로젝트를 만들거나, 기존의 프로젝트를 불러 올 수 도 있다. • 하지만 대게 기존에 존재하는 프로젝트를 받아와서 진행하는 경우가 전부이다. • 적어도 CIEN 프로젝트를 진행함에 있어서 Clone 이외의 버튼을 누를 일은 적을 것 이라고 생각한다. • 또, 새로운 프로젝트를 만드는 과정은 Github For Windows에서 지원하는 기본 gitignore가 편리하기 때문에 굳이 SourceTree로 통해 할 필요가 없다. • SourcTree는 GUI가 잘 되어있고 보기가 좋아 사용하는 툴이다.
  • 14. 4-2 SOURCETREE (4) • SourceTree에서 받은 경로를 찾아간 다음에 두번째 파일을 추가해 보았다. Uncommited changes라는 문구가 뜨면서 밑에는 Unstaged Files에 추가한 파일이 나타난다. • Unstaged Files를 체크하면 자동으로 Staged File에 올라간다. 그 뒤 Commit 버튼을 누르 고 아래와 같이 Commit버튼을 누르면 Commit이 완료된다.
  • 15. 4-2 SOURCETREE (5) • Commit이 완료되면 Push에 1이라는 숫자가 적혀있는 것을 확인할 수 있다. 이는 아직 다른 사람들이 수정 내역을 볼 수 없다는 뜻이다. • Push를 눌러서 OK를 눌러준다. • GitHub For Windows에서도 변경 내역이 같이 보이는 것을 확인할 수 있다. (우측 상단의 Sync버튼을 눌러야 최신내용으로 나타난다.)
  • 16. 5. 용어 설명 • Commit: 기존의 파일을 변경하거나 새로운 파일의 추가 등의 변화를 가한 뒤 자신의 로컬 저장소에 올리는 것을 의미한다. 로컬 즉, 자신의 컴퓨터에서만 볼 수 있기 때 문에 다른 사람은 확인할 수가 없다. • Push: Commit을 통하여 로컬 저장소에 올린 변경 내용들을 다른 사람들이 볼 수 있도록 원격 저장소에 올리는 것을 의미한다. • Fetch: 다른 사람이 Push한 것은 실시간으로 반영되지 않는다. 다른 사람이 Push한 것을 확인하기 위해선 수시로 Fetch를 해준다. Fetch는 원격저장소의 변경 내용을 자신의 로컬 저장소로 가져온다. • Pull: Fetch를 하면 최신 변경 내용들이 반영된다. 만약 자신이 작업하고 있는 환경에서 직접 변경 내용을 적용시키고 싶다면 Pull을 해준다. (Fetch는 변경 내용이 있다 는 것을 알려주는 것이지, 지금 자신이 작업하고 있는 환경을 변화시키는 것을 의미하지 않는다.) • Sync: Github For Windows에서 사용하는 용어로 Push, Fetch 처럼 로컬 저장소와 원격 저장소 사이의 동기화하는 작업을 통 틀어서 의미한다. (Push+Fetch) • Publish: Project를 원격저장소에 올리는 작업을 Publish라 한다. (Github For windows에서 사용) • Branch: branch란, 예를 들어 같은 프로젝트 안에서 서로 맡은 일에 따라 진행하다가 만약 같은 파일을 수정하게 된다면 push할 때 충돌이 발생하게 된다. 이를 방지하 기 위해 branch라는 자신만의 공간을 만들어서 다른 사람과 당장은 충돌이 발생하지 않도록 하는 수단이다. • Merge: branch를 각자 나누어서 작업을 했다면, 서로 일이 다 끝났을 때는 합쳐야 하나의 프로젝트로 적용이 될 것이다. 서로 겹치는 부분에 대한 충돌을 체크하고, 하 나로 합치는 과정을 Merge라 한다. • CheckOut: 다른 사람의 Branch를 보고 싶을 때, 그 branch를 받아 오는 것을 checkout이라 한다. • Revert: GitHub For windows에서 사용하는 용어로, 현재 보고 있는 Commit(Push)내용의 변화를 전부 되돌리고(그 전 단계로) 그것을 하나의 커밋으로 올린다.
  • 17. 6. GITHUB 홈페이지 기능(1) • 우측을 보면 Code, Issues, Pull requests, Wiki, Pulse, Graphs , Settings 가 있다. • Code는 현재 보이는 화면으로 현재 기본 branch로 master가 선택되어있음 을 알 수 있고 (즉, 기본 branch는 변경 가능하다) 현재까지 이 branch의 commit 개수가 5개이며, branch의 총 개수가 1개라는 것을 알려준다. Release는 이 프로젝트의 배포 단계를 말하는 것으로 제대로 작동하게 해둔 프로젝트를 지정해준다. (예를 들어 게임에서 v0.1, v0.2, v1.0 등으로 단계 별로 올려나면서 패치하는 것(릴리즈 하는 것)을 의미한다.) • Contributors는 이 프로젝트에 참여한 사람의 수를 의미한다. • Contributors를 클릭하면 자동으로 Graphs 화면으로 넘어간다.
  • 18. 6. GITHUB 홈페이지 기능(2) • Issues를 클릭하면 Issues창이 뜬다. • 예를 들어 개발자1은 전투 로직를 개발하고, 개발자2는 이벤트를 개발하고, 개발자3는 UI를 개발하기로 하였다 하면, 이 Issue를 지정하여 각자 맡은 일이 무엇인지를 정해둘 수 있다. 즉, 다른 사람이 같은 일을 겹치게 하지 않도록 방지하는 역할을 할 수 있다. • New Issue를 클릭하면 나오는 화면이다. • Labels는 이 일이 어떤 종류인지를 정한다. 예를 들자면 어떤 로직에서 벅그가 발생하여 그 버그를 수정해야 하는 일이라면 labels은 bug fix가 될 것이다. 이 labels은 임의로 추가 및 수정이 가능하다. • Milestone은 이 일이 어떤 버전에 해당하는 일인지를 할당한다. 예를 들어 v0.2에서 끝냈어야 할 로직에서 문제가 발생했다면 이 이슈는 v0.2가 될 것이다. Milestone은 역시 임의로 추가 수정이 가능하다. • Assignee는 누가 이 일을 할지에 대한 지정이다. Issue를 관리하는 팀장이 이슈를 만들고 각자 할 일을 부여하는 것이다. • Issue를 완료 했다면 Close Issue를 누르면 Closed issue로 넘어가면서 Issue가 닫아진다. 나중에 다시 열 수도 있다.
  • 19. 6. GITHUB 홈페이지 기능(3) • Pull Request는 줄여서 PR이라고 사용한다. • 각 Repository마다 참여자를 지정할 수 있다. 하지만 만약 참여자로 지정되지 않아 권한이 없다고 해도 그 프로젝트에 참여할 수 있다. • 그 방법이 PR로 수정한 파일들을 바로 Push하는 것이 아니라 PR을 통해 이렇게 이 렇게 수정해서 더 개선하였으니 적용시켜 주십시오 라는 요청을 보내는 것이다. • CIEN 프로젝트에서는 참여자들은 전부 권한을 가지고 있기 때문에 또 사전에 미리 이야기를 진행하기 때문에 아직까진 사용하지 않는 기능이지만, 사실 PR을 통해 미 리 코드를 읽어 보고 고쳐야 할 점을 서로 지적한 다음에 완벽한 코드로써 프로젝트 에 적용시킨다는 점에서 언젠가 활용해야 할 기능 중 하나이다.
  • 20. 6. GITHUB 홈페이지 기능(4) • Wiki는 흔히 아는 그 Wiki가 맞다. 다른 사람들이 이 프로젝트의 진행 상황이나 어떤 프로젝트인지를 알고 싶으면 이 문서를 참고하면 된다. • 사용할지 안 할지는 자유이나, CIEN에서는 따로 Wiki를 운영하고 있기 때문에 굳이 Github에서 지원하는 Wiki를 사용할 필요는 없어 보인다. 하지만, 다른 프로젝트를 참고해야 할 일이 있을 때 잘 정리되어있는 문서를 보면서 매우 만족하는 경우도 많 다. • Pulse나 Graph의 경우 이 프로젝트가 활발하게 진행되고 있는지, 누가 참여를 하고 있는지, 얼마나 열심히 하는지 등을 볼 수 있도록 분석해주는 페이지 이다. 가장 Commit을 많이 한 사람, 4월에 가장 많이 한 사람 등을 가려낼 수 있기 때문에 누가 놀면서 일을 안하고 있다면 응징의 철퇴를 내릴 수 있다.
  • 21. 7. 마치며 • 기본적으로 프로젝트에 참여할 수 있도록 기능들을 적어놨다. • 하지만 아직 좀 더 실용적인 기술들이 남아있다. (커밋을 실수로 했을 때?, 커밋 여러 개를 한 번에 합쳐서 올리고 싶을 때?, Merge할 때 충 돌에 대한 쉬운 해결법?, Fork란?, Rebase란? 등등..) • 이러한 기술들은 다음 Git 발표에서 다루도록 하겠다. • 모두들 방학에 꼭 프로젝트를 완성시킬 수 있으면 좋겠다.