SlideShare a Scribd company logo
1 of 68
Download to read offline
GitHub @ Kyung Hee University
KhuHub 가이드라인
Department of Computer Engineering,
Kyung Hee University.
Main Page
2
로그인
회원가입
컴퓨터공학과 홈페이지프로젝트 탐색
가이드라인
Sign Up Convention
3
 [학생]
 이름 : 홍길동
 학번(Username) : 2017000000
 email : khu@khu.ac.kr
 Password : 8자 이상의 글자
Sign In
 이메일 또는 학번(Username) 중에서 자유롭게 선택하여 로그인 가능
 회원가입 시 입력한 이름은 단순 참고용이며, 학번(Username)이 본인을 구별할 수 있는 식별자입니다.
 학번(Username)은 본인의 URL이 되므로 도메인 네이밍 규칙을 따릅니다.
4
참고 사항
 도메인 네임 (인터넷 주소)
 규칙
 영문자(A∼Z), 숫자(0∼9)또는 하이픈(-)의 조합으로만 가능하며 영문자의 대, 소문자 구별이 없다.
 영어나 숫자로 시작해야 하며 하이픈(-)으로 끝내서는 안된다.
 도메인 네임의 길이는 최소 2자에서 최대 63자까지 가능하다.(개인 도메인은 3자부터)
 콤마(,)언더바(_)등의 기호와 특수문자(& %)는 사용할 수 없다.
5
[네이버 지식백과] 도메인 [Domain] (시사상식사전, 박문각)
After Sign In
 Group
 개발자들을 멤버로 추가하여 여러 프로젝트들을 모아놓고 함께 협업할 수 있는 집단
 KhuHub에서 그룹이란 것은 한 학기 수업으로 사용됩니다.
 각 멤버는 그룹에 속한 여러 프로젝트에 대해서 접근 권한이 각기 다릅니다. 그룹 생성자는 모든 프로젝트에 접근하여
읽기/쓰기 모두 가능합니다.
 KhuHub에서는 group은 하나의 수업이 될 수 있으며, 그룹 생성자는 교수님 또는 수업조교가 됩니다.
 그룹 이름은 해당 그룹의 URL이 되기 때문에 띄어쓰기 없이 영문과 특정 기호만 가능합니다. (도메인 네임 규칙)
ex> 2016-1-operating-system
 Project
 한 명 이상의 개발자가 참여하여 진행할 수 있는 개발 프로젝트의 최소 단위
 프로젝트 생성자는 팀원을 초대하여 협업할 수 있습니다.
 프로젝트 이름은 해당 프로젝트의 URL이 되기 때문에 띄어쓰기 없이 영문과 특정 기호만 가능합니다. (도메인 네임 규칙)
6
창의적 설계
project_1
project_2
졸업연구
project_1
project_2
Group
Project
수업(group) 생성-1
 각 수업(group)의 이름은 수업 관리 편의, 검색 등을 위해 명명 규칙을 준수해주세요.
 명명 규칙
 도메인 네임 규칙을 기반
 띄어쓰기는 -(하이픈)으로 구분
 년도-학기-수업의 영문명
ex> 2016-1-operating-system 또는 2016-2-creative-design
 동시에 여러 수업이 개설될 경우 -(하이픈)숫자 로 구분
ex> 2016-1-operating-system-1, 2016-1-operating-system-2
7
수업(group) 생성-2
8
클릭
클릭
클릭
수업(group) 생성-3
 Group path
 수업 명명 규칙에 따라 정해진 수업명을 입력
 Description
 수업에 대한 간략한 설명. 문자 제약 없음
 Group avatar
 수업을 상징하는 프로필 사진(옵션)
 Visibility Level
 해당 그룹을 볼 수 있는 범위
 KhuHub에서는 public을 권장
 Public으로 해야 학생들이 접근 및 검색이 가능
 개인적인 개발을 위한 경우, Private으로 설정 가능
9
수업 이름
수업에 대한 간략한 설명
수업을 상징하는 프로필 사진(옵션)
해당 수업(그룹)을 볼 수 있는 범위
수업(group) 생성-4
10
수업 생성 예시
수업 검색
11
클릭
클릭
클릭
학생 초대 및 운영-1
 그룹 관리자의 초대 or 유저의 액세스 요청
12
관리자일 경우에만 초대가능
학생 초대 및 운영-2 (그룹 관리자의 초대)
 리스트에서 유저를 고르거나, 이름, 학번, 이메일 등을 입력하여 초대 가능
13
학생 초대 및 운영-3 (그룹 관리자의 초대)
 권한 추가 - 학생일 경우 Developer 권한, 조교일 경우 Master/Owner 권한 부여
14
해당 그룹에 프로젝트
생성은 Master 권한부터
가능
학생 초대 및 운영-4 (그룹 관리자의 초대)
 해당 그룹에 초대 완료
15
학생 초대 및 운영-5 (유저의 액세스 요청)
 참여할 그룹 검색
16
선택
학생 초대 및 운영-6 (유저의 액세스 요청)
 Request Access
17
선택
학생 초대 및 운영-7 (유저의 액세스 요청)
 그룹 관리자의 허가
 Accept/Delete
 권한 수정 가능
18
해당 유저의 요청
프로젝트 생성-1
 프로젝트 생성은 해당 그룹의 Master/Owner 권한 이상만 가능
 교수님 또는 수업조교가 프로젝트를 생성해준 뒤, 학생에게 이관하는 방식
 학생들에게 권한을 주고 자유롭게 프로젝트 생성 및 삭제하도록 하는 방식
19
프로젝트 생성-2
 프로젝트 이름도 도메인 네임 규칙에 따라 생성
 Visibility Level은 반드시 public
20
프로젝트 생성-3
 프로젝트 생성 완료
 이후 프로젝트 트리 생성, 소스코드 업로드, 버전 컨트롤 및 협업 기능은 Git을 이용
21
 http://www.slideshare.net/kairosfox/git-github-seminar2-47909062
 http://www.slideshare.net/kairosfox/git-github-seminar2
22
Git / GitHub 관련 참고자료
GIT이란?
23 /
Git (분산 버전 관리 시스템)
 프로젝트(소스코드, 리소스 등)를 관리하기 위한 분산 버전 관리 시스템(DVCS)
 네트워크에 접근하거나 중앙 서버에 의존하지 않는 완전한 형태의 저장소
 리누즈 토발즈가 리눅스 커널 개발에 이용하려고 최초 개발 및 사용
 깃의 작업 폴더는 모두, 전체 기록과 각 기록을 추적할 수 있는 정보를 포함
 다운로드 : https://git-scm.com/downloads
24
Git과 GitHub/KhuHub 의 관계
25
Internet
User
User’s PC
Server
(GitHub)
(KhuHub)
GIT 설치 방법
26
Windows 설치
Windows 터미널 프로그램
28 /
Linux 설치
1. sudo apt-get install git-core git-doc
2. git --version
3. 설치 완료
30
SSH Key 등록
 리눅스에서는 일반 터미널 / 윈도우에서는 앞서 설치한 git 터미널에서 실행
 cat ~/.ssh/id_rsa.pub
 해당 명령어를 통해 ssh 키 확인 후, 복사하여 KhuHub에 붙여넣기
31
SSH Key 발급
SSH key 발급
 Key가 저장된 경로에서 키값 복사
32 /
33
SSH key copy & paste
34
SSH key 등록
GIT 사용
1. 저장소 생성
2. 사용자 정보 입력
3. 변경 적용
4. 프로젝트 상태 확인
35 /
36
테스트용 프로젝트 생성
 해당 프로젝트의 URL만 안내
 Git을 통해 소스코드, 리소스 등을 업로드
37
프로젝트 생성 시 초기 화면
 git clone 명령어를 통해 원격 저장소의 프로젝트 가져오기
 GitHub 또는 KhuHub 페이지에 표기되어 있는 주소를 통해 클론
38
원격 저장소의 test 프로젝트 가져오기
 클론해 온 프로젝트에 임의의 테스트 파일 추가
39
테스트 파일 추가
 새로 추가된 test 파일을 add
 변경 사항을 로컬 저장소에 commit
40
add & commit
commit 메시지 작성
 로컬 저장소의 변경 내역을 원격 저장소(GitHub/KhuHub)에 푸쉬
 git push <브랜치이름>
41
push
42
원격 저장소에서 변경 내역 확인
commit ID / commit 메시지 / 변경자
43
원격 저장소에서 변경 내역 확인
예제에서 추가했던 테스트 파일
저장소 생성하기(명령어 : git init)
1. mkdir git-test
2. cd git-test
3. git init
저장소 받아오기(명령어 : git clone)
1. 로컬 저장소에서 받아오기
git clone /로컬/저장소/경로
2. 원격 저장소에서 받아오기
git clone 사용자명@호스트:/원격/저장소/경로
git clone 저장소 주소(ex: git clone git://github.com/sangyunHan/kairos-xxx)
커미터 등록
 Git을 사용하는 사용자에 대한 정보를 git에 등록한다.
 공동 작업을 할 때 각각의 버전이 누구의 작업인지 구별해주는 역할
 git config --global user.name “사용자명”
 git config --global user.email “사용자 이메일"
46 /
작업의 흐름
작업 공간
(working dir)
로컬 저
장소
(head)
원격 저장소
인덱스
(staging area)
Git GitHub
add commit push
인덱스의 중요성!
작업공간
ADD와 COMMIT
git status
git add
git commit
49 /
상태보기(명령어 : git status)
50 /
파일 추가
51 /
파일 추가 후 상태
52 /
파일 추가 후 상태
53 /
인덱스(staging area)에 등록되
지 않아서 버전관리가 되고 있
지 않은 파일들
add : 인덱스에(staging area) 등록
 git add 파일명(ex: git add file.c)
54 /
작업의 흐름
작업 공간
(working dir)
로컬 저
장소
(head)
원격 저장소
인덱스
(staging area)
Git GitHub
add commit push
file.c
commit : 저장소에 등록
 git commit –m “이번 commit에 대한 설명"
56 /
commit : 저장소에 등록
 git commit –m “이번 commit에 대한 설명"
57 /
커밋에 대한 메시지
작업의 흐름
작업 공간
(working dir)
로컬 저
장소
(head)
원격 저장소
인덱스
(staging area)
Git GitHub
add commit push
file.c
파일 수정
59 /
코드 추가
add 후, status 확인
60 /
작업 이력 확인(명령어 : git log)
61 /
작업 이력 확인(명령어 : git log)
62 /
커밋 리비전
각각의 커밋에 대한 고유 ID
SHA-1 해시값으로 구성
작업 이력 확인(명령어 : git log)
63 /
커밋 작성자 정보
작업 이력 확인(명령어 : git log)
64 /
커밋 날짜와 시간
작업 이력 확인(명령어 : git log)
65 /
커밋에 대한 메시지들
변경 취소(이전 commit 내용 가져오기)
66 /
작업의 흐름
작업 공간
(working dir)
로컬 저
장소
(head)
인덱스
(staging area)
Git
add commit
file.c
printf(“change 1”);
file.c
printf(“change 1”);
printf(“change 2”);
printf(“change 3”);
printf(“change 4”);
checkout
변경 취소(명령어 : git checkout 파일명)
68 /
checkout 결과

More Related Content

What's hot

Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Ian Choi
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case studyWoo Jin Kim
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기Youngbin Han
 
Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Hyunjun Roh
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1Hansol Kang
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴은아 정
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)민수 김
 
Github가 뭐죠 먹는 건가요
Github가 뭐죠  먹는 건가요 Github가 뭐죠  먹는 건가요
Github가 뭐죠 먹는 건가요 Jinwoo Kim
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기우영 주
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001BJ Jang
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
Source tree(git) 사용
Source tree(git) 사용Source tree(git) 사용
Source tree(git) 사용BoxcarDev
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)승용 윤
 

What's hot (20)

Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?
 
Git tutorials
Git tutorialsGit tutorials
Git tutorials
 
git-basic-commands
git-basic-commandsgit-basic-commands
git-basic-commands
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
Git branch stregagy & case study
Git branch stregagy & case studyGit branch stregagy & case study
Git branch stregagy & case study
 
Git 코드랩 스터디 2
Git 코드랩 스터디 2Git 코드랩 스터디 2
Git 코드랩 스터디 2
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
 
Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)Git 분산버전관리 시스템(1)
Git 분산버전관리 시스템(1)
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)
 
Github가 뭐죠 먹는 건가요
Github가 뭐죠  먹는 건가요 Github가 뭐죠  먹는 건가요
Github가 뭐죠 먹는 건가요
 
이클립스로 GIT 사용하기
이클립스로 GIT 사용하기이클립스로 GIT 사용하기
이클립스로 GIT 사용하기
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
Source tree(git) 사용
Source tree(git) 사용Source tree(git) 사용
Source tree(git) 사용
 
Git 기본
Git 기본Git 기본
Git 기본
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 

Viewers also liked

XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD projectsangyun han
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD projectsangyun han
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSsangyun han
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발sangyun han
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technologysangyun han
 
ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testsangyun han
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbedsangyun han
 
ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)sangyun han
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)sangyun han
 
CDNetworks TokuDB Engine User Case
CDNetworks TokuDB Engine User CaseCDNetworks TokuDB Engine User Case
CDNetworks TokuDB Engine User CaseSoo Hyun Park
 
Yang detail introduction
Yang detail introductionYang detail introduction
Yang detail introductionGyewan An
 
netconf, restconf, grpc_basic
netconf, restconf, grpc_basicnetconf, restconf, grpc_basic
netconf, restconf, grpc_basicGyewan An
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 

Viewers also liked (13)

XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD project
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOS
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technology
 
ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and test
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
 
ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
 
CDNetworks TokuDB Engine User Case
CDNetworks TokuDB Engine User CaseCDNetworks TokuDB Engine User Case
CDNetworks TokuDB Engine User Case
 
Yang detail introduction
Yang detail introductionYang detail introduction
Yang detail introduction
 
netconf, restconf, grpc_basic
netconf, restconf, grpc_basicnetconf, restconf, grpc_basic
netconf, restconf, grpc_basic
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 

Similar to KhuHub student guideline

오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)Yoonsoo Kim
 
[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
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어서영 허
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장MinPa Lee
 
[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2ndPark Jonggun
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디Youngbin Han
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851Hyeok Oh
 
postgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfpostgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfLee Dong Wook
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)승훈 오
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
Windows에서 go+eclipse 개발환경 구축
Windows에서 go+eclipse 개발환경 구축Windows에서 go+eclipse 개발환경 구축
Windows에서 go+eclipse 개발환경 구축Jaehoon Kim
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
Hyperledger Explorer.pptx
Hyperledger Explorer.pptxHyperledger Explorer.pptx
Hyperledger Explorer.pptxwonyong hwang
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기영우 김
 

Similar to KhuHub student guideline (20)

Gitlab.key
Gitlab.keyGitlab.key
Gitlab.key
 
Why use git
Why use gitWhy use git
Why use git
 
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
 
[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)
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어내 맘대로 이해한 오픈소스 소프트웨어
내 맘대로 이해한 오픈소스 소프트웨어
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd[IoT] MAKE with Open H/W + Node.JS - 2nd
[IoT] MAKE with Open H/W + Node.JS - 2nd
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
Story About Git_oh4851
Story About Git_oh4851Story About Git_oh4851
Story About Git_oh4851
 
postgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdfpostgres_빌드_및_디버깅.pdf
postgres_빌드_및_디버깅.pdf
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
Windows에서 go+eclipse 개발환경 구축
Windows에서 go+eclipse 개발환경 구축Windows에서 go+eclipse 개발환경 구축
Windows에서 go+eclipse 개발환경 구축
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
Hyperledger Explorer.pptx
Hyperledger Explorer.pptxHyperledger Explorer.pptx
Hyperledger Explorer.pptx
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기
 

KhuHub student guideline

  • 1. GitHub @ Kyung Hee University KhuHub 가이드라인 Department of Computer Engineering, Kyung Hee University.
  • 3. Sign Up Convention 3  [학생]  이름 : 홍길동  학번(Username) : 2017000000  email : khu@khu.ac.kr  Password : 8자 이상의 글자
  • 4. Sign In  이메일 또는 학번(Username) 중에서 자유롭게 선택하여 로그인 가능  회원가입 시 입력한 이름은 단순 참고용이며, 학번(Username)이 본인을 구별할 수 있는 식별자입니다.  학번(Username)은 본인의 URL이 되므로 도메인 네이밍 규칙을 따릅니다. 4
  • 5. 참고 사항  도메인 네임 (인터넷 주소)  규칙  영문자(A∼Z), 숫자(0∼9)또는 하이픈(-)의 조합으로만 가능하며 영문자의 대, 소문자 구별이 없다.  영어나 숫자로 시작해야 하며 하이픈(-)으로 끝내서는 안된다.  도메인 네임의 길이는 최소 2자에서 최대 63자까지 가능하다.(개인 도메인은 3자부터)  콤마(,)언더바(_)등의 기호와 특수문자(& %)는 사용할 수 없다. 5 [네이버 지식백과] 도메인 [Domain] (시사상식사전, 박문각)
  • 6. After Sign In  Group  개발자들을 멤버로 추가하여 여러 프로젝트들을 모아놓고 함께 협업할 수 있는 집단  KhuHub에서 그룹이란 것은 한 학기 수업으로 사용됩니다.  각 멤버는 그룹에 속한 여러 프로젝트에 대해서 접근 권한이 각기 다릅니다. 그룹 생성자는 모든 프로젝트에 접근하여 읽기/쓰기 모두 가능합니다.  KhuHub에서는 group은 하나의 수업이 될 수 있으며, 그룹 생성자는 교수님 또는 수업조교가 됩니다.  그룹 이름은 해당 그룹의 URL이 되기 때문에 띄어쓰기 없이 영문과 특정 기호만 가능합니다. (도메인 네임 규칙) ex> 2016-1-operating-system  Project  한 명 이상의 개발자가 참여하여 진행할 수 있는 개발 프로젝트의 최소 단위  프로젝트 생성자는 팀원을 초대하여 협업할 수 있습니다.  프로젝트 이름은 해당 프로젝트의 URL이 되기 때문에 띄어쓰기 없이 영문과 특정 기호만 가능합니다. (도메인 네임 규칙) 6 창의적 설계 project_1 project_2 졸업연구 project_1 project_2 Group Project
  • 7. 수업(group) 생성-1  각 수업(group)의 이름은 수업 관리 편의, 검색 등을 위해 명명 규칙을 준수해주세요.  명명 규칙  도메인 네임 규칙을 기반  띄어쓰기는 -(하이픈)으로 구분  년도-학기-수업의 영문명 ex> 2016-1-operating-system 또는 2016-2-creative-design  동시에 여러 수업이 개설될 경우 -(하이픈)숫자 로 구분 ex> 2016-1-operating-system-1, 2016-1-operating-system-2 7
  • 9. 수업(group) 생성-3  Group path  수업 명명 규칙에 따라 정해진 수업명을 입력  Description  수업에 대한 간략한 설명. 문자 제약 없음  Group avatar  수업을 상징하는 프로필 사진(옵션)  Visibility Level  해당 그룹을 볼 수 있는 범위  KhuHub에서는 public을 권장  Public으로 해야 학생들이 접근 및 검색이 가능  개인적인 개발을 위한 경우, Private으로 설정 가능 9 수업 이름 수업에 대한 간략한 설명 수업을 상징하는 프로필 사진(옵션) 해당 수업(그룹)을 볼 수 있는 범위
  • 12. 학생 초대 및 운영-1  그룹 관리자의 초대 or 유저의 액세스 요청 12 관리자일 경우에만 초대가능
  • 13. 학생 초대 및 운영-2 (그룹 관리자의 초대)  리스트에서 유저를 고르거나, 이름, 학번, 이메일 등을 입력하여 초대 가능 13
  • 14. 학생 초대 및 운영-3 (그룹 관리자의 초대)  권한 추가 - 학생일 경우 Developer 권한, 조교일 경우 Master/Owner 권한 부여 14 해당 그룹에 프로젝트 생성은 Master 권한부터 가능
  • 15. 학생 초대 및 운영-4 (그룹 관리자의 초대)  해당 그룹에 초대 완료 15
  • 16. 학생 초대 및 운영-5 (유저의 액세스 요청)  참여할 그룹 검색 16 선택
  • 17. 학생 초대 및 운영-6 (유저의 액세스 요청)  Request Access 17 선택
  • 18. 학생 초대 및 운영-7 (유저의 액세스 요청)  그룹 관리자의 허가  Accept/Delete  권한 수정 가능 18 해당 유저의 요청
  • 19. 프로젝트 생성-1  프로젝트 생성은 해당 그룹의 Master/Owner 권한 이상만 가능  교수님 또는 수업조교가 프로젝트를 생성해준 뒤, 학생에게 이관하는 방식  학생들에게 권한을 주고 자유롭게 프로젝트 생성 및 삭제하도록 하는 방식 19
  • 20. 프로젝트 생성-2  프로젝트 이름도 도메인 네임 규칙에 따라 생성  Visibility Level은 반드시 public 20
  • 21. 프로젝트 생성-3  프로젝트 생성 완료  이후 프로젝트 트리 생성, 소스코드 업로드, 버전 컨트롤 및 협업 기능은 Git을 이용 21
  • 24. Git (분산 버전 관리 시스템)  프로젝트(소스코드, 리소스 등)를 관리하기 위한 분산 버전 관리 시스템(DVCS)  네트워크에 접근하거나 중앙 서버에 의존하지 않는 완전한 형태의 저장소  리누즈 토발즈가 리눅스 커널 개발에 이용하려고 최초 개발 및 사용  깃의 작업 폴더는 모두, 전체 기록과 각 기록을 추적할 수 있는 정보를 포함  다운로드 : https://git-scm.com/downloads 24
  • 25. Git과 GitHub/KhuHub 의 관계 25 Internet User User’s PC Server (GitHub) (KhuHub)
  • 29. Linux 설치 1. sudo apt-get install git-core git-doc 2. git --version 3. 설치 완료
  • 31.  리눅스에서는 일반 터미널 / 윈도우에서는 앞서 설치한 git 터미널에서 실행  cat ~/.ssh/id_rsa.pub  해당 명령어를 통해 ssh 키 확인 후, 복사하여 KhuHub에 붙여넣기 31 SSH Key 발급
  • 32. SSH key 발급  Key가 저장된 경로에서 키값 복사 32 /
  • 33. 33 SSH key copy & paste
  • 35. GIT 사용 1. 저장소 생성 2. 사용자 정보 입력 3. 변경 적용 4. 프로젝트 상태 확인 35 /
  • 37.  해당 프로젝트의 URL만 안내  Git을 통해 소스코드, 리소스 등을 업로드 37 프로젝트 생성 시 초기 화면
  • 38.  git clone 명령어를 통해 원격 저장소의 프로젝트 가져오기  GitHub 또는 KhuHub 페이지에 표기되어 있는 주소를 통해 클론 38 원격 저장소의 test 프로젝트 가져오기
  • 39.  클론해 온 프로젝트에 임의의 테스트 파일 추가 39 테스트 파일 추가
  • 40.  새로 추가된 test 파일을 add  변경 사항을 로컬 저장소에 commit 40 add & commit commit 메시지 작성
  • 41.  로컬 저장소의 변경 내역을 원격 저장소(GitHub/KhuHub)에 푸쉬  git push <브랜치이름> 41 push
  • 42. 42 원격 저장소에서 변경 내역 확인 commit ID / commit 메시지 / 변경자
  • 43. 43 원격 저장소에서 변경 내역 확인 예제에서 추가했던 테스트 파일
  • 44. 저장소 생성하기(명령어 : git init) 1. mkdir git-test 2. cd git-test 3. git init
  • 45. 저장소 받아오기(명령어 : git clone) 1. 로컬 저장소에서 받아오기 git clone /로컬/저장소/경로 2. 원격 저장소에서 받아오기 git clone 사용자명@호스트:/원격/저장소/경로 git clone 저장소 주소(ex: git clone git://github.com/sangyunHan/kairos-xxx)
  • 46. 커미터 등록  Git을 사용하는 사용자에 대한 정보를 git에 등록한다.  공동 작업을 할 때 각각의 버전이 누구의 작업인지 구별해주는 역할  git config --global user.name “사용자명”  git config --global user.email “사용자 이메일" 46 /
  • 47. 작업의 흐름 작업 공간 (working dir) 로컬 저 장소 (head) 원격 저장소 인덱스 (staging area) Git GitHub add commit push
  • 49. ADD와 COMMIT git status git add git commit 49 /
  • 52. 파일 추가 후 상태 52 /
  • 53. 파일 추가 후 상태 53 / 인덱스(staging area)에 등록되 지 않아서 버전관리가 되고 있 지 않은 파일들
  • 54. add : 인덱스에(staging area) 등록  git add 파일명(ex: git add file.c) 54 /
  • 55. 작업의 흐름 작업 공간 (working dir) 로컬 저 장소 (head) 원격 저장소 인덱스 (staging area) Git GitHub add commit push file.c
  • 56. commit : 저장소에 등록  git commit –m “이번 commit에 대한 설명" 56 /
  • 57. commit : 저장소에 등록  git commit –m “이번 commit에 대한 설명" 57 / 커밋에 대한 메시지
  • 58. 작업의 흐름 작업 공간 (working dir) 로컬 저 장소 (head) 원격 저장소 인덱스 (staging area) Git GitHub add commit push file.c
  • 60. add 후, status 확인 60 /
  • 62. 작업 이력 확인(명령어 : git log) 62 / 커밋 리비전 각각의 커밋에 대한 고유 ID SHA-1 해시값으로 구성
  • 63. 작업 이력 확인(명령어 : git log) 63 / 커밋 작성자 정보
  • 64. 작업 이력 확인(명령어 : git log) 64 / 커밋 날짜와 시간
  • 65. 작업 이력 확인(명령어 : git log) 65 / 커밋에 대한 메시지들
  • 66. 변경 취소(이전 commit 내용 가져오기) 66 /
  • 67. 작업의 흐름 작업 공간 (working dir) 로컬 저 장소 (head) 인덱스 (staging area) Git add commit file.c printf(“change 1”); file.c printf(“change 1”); printf(“change 2”); printf(“change 3”); printf(“change 4”); checkout
  • 68. 변경 취소(명령어 : git checkout 파일명) 68 / checkout 결과