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