Git 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제
1. 도구개요 1.1 도구정보요약 도구명 소개 Git (http://git-scm.com/) 라이선스 리누스토발즈가만든분산형버전관리시스템 대부분의공개 SW 가 Git 을이용해서관리되고있음 General Public License v2 GitHub, BitBucket, GitLab 등웹기반의다양한소스저장소서비스의기반 대부분의 IDE 에서 Git 지원 분산형버전관리시스템으로 Git 사용자가 Git 저장소를보유하고원격과동기화 특징 거의모든명령을로컬에서수행하며, branch 의생성 / 전환 / 폐기가빠르다 파일별변화를저장하는다른버전관리시스템과달리파일시스템스냅샷을관리 소스및문서버전관리서버및클라이언트기능 주요기능 add, commit, reset, branch, checkout, merge, rebase 등로컬에서의작업 push, pull. fetch 등원격작업 실행환경 Windows, Linux, MacOS 사전설치도구 해당없음 카테고리 형상관리최신버전 v2.6.2 (2015.10) 관련도구 CVS, SVN, EGit 2
1. 도구개요 1.2 스크린캡쳐및주요기능 터미널에서 git 명령을실행할수있는 Git Bash GUI 환경에서 git 명령을실행할수있는 Git GUI 3
2. 설치및실행 세부목차 2.1 사전설치사항확인 2.2 다운로드 2.3 설치 2.4 실행 4
2. 설치및실행 2.1 사전설치사항확인 Git는별도의사전설치도구가필요없다. Linux에서는배포판별설치도구를통해설치할수있으며, Windows 와 MacOSX 용설치파일을다운로드해서설치할수있다. 5
2. 설치및실행 2.2 다운로드 (1/4) http://git-scm.com/ 에접속 해당 OS 클릭 6
2. 설치및실행 2.2 다운로드 (2/4) Linux 에서의설치 터미널에서배포판에맞는설치명령실행 7
2. 설치및실행 2.2 다운로드 (3/4) Windows 에서의설치 8
2. 설치및실행 2.2 다운로드 (4/4) 설치파일다운로드 9
2. 설치및실행 2.2 설치 (1/8) 설치파일실행 10
2. 설치및실행 2.2 설치 (2/8) 설치마법사시작 라이선스동의 11
2. 설치및실행 2.2 설치 (3/8) 설치위치지정 설치옵션지정 기본값으로설치 12
2. 설치및실행 2.2 설치 (4/8) 시작프로그램등록 PATH 환경변수설정 기본값으로설치 13
2. 설치및실행 2.2 설치 (5/8) 개행문자설정 - Checkout Windows-style, commit Unix-style line endings - checkout 할때 CRLF로가져오고, commit 할때 LF로변환 14
2. 설치및실행 2.2 설치 (6/8) 실행터미널지정 - Use MinTTY : MinTTY 터미널새로설치 - Use Windows default console window : 윈도우기본명령창에서 git 실행 15
2. 설치및실행 2.2 설치 (7/8) 파일시스템캐쉬기능 - 파일시스템데이터를대량으로읽어서메모리에캐쉬 - 성능을대폭향상시킬수있으나아직실험단계기능이므로, 선택하지않고기본값그대로설치한다. 16
2. 설치및실행 2.2 설치 (8/8) 설치시작 설치완료 - 릴리스노트를보지않으려면체크를해제한다. 17
3. 주요기능 세부목차 3.1 git 설정파일 3.2 버전관리대상제외 3.3 git clone 3.4 git checkout 3.5 git diff 3.6 git status 3.7 git add 3.8 git commit 3.9 git merge 3.10 git rebase 3.11 git fetch 3.12 git pull 3.13 git push 18
3. 주요기능 3.1 git 설정파일 git 설정파일은 3단계로구성되어있다. - /etc/gitconfig : 시스템모든사용자와모든 git 저장소에적용 - git config --system 은이파일을수정 - ~/.gitconfig 또는 ~/.config/git/config : 특정사용자에게만적용 - git config --global 은이파일을수정 - git_ 저장소 _ 디렉토리 /.git/config : 특정 git 저장소에만적용 - git config 는이파일을수정 - 설정파일을직접수정또는 git config 명령으로설정가능 구체성이높은것이우선적용된다. - git_ 저장소 _ 디렉토리 /.git/config 의설정사항이가장우선적용되고 - /etc/gitconfig 의설정사항은우선순위가가장낮다 윈도우에서는 $HOME( 보통 C:\Users\$USER)/gitconfig 와 git_ 저장소 _ 디렉토리 /.git/config 이렇게두가지의설정파일이존재한다. 19
3. 주요기능 3.2 버전관리대상제외.gitignore 파일을통해특정파일이나디렉토리를버전관리대상에서제외가능 아래의파일에설정된모든항목은버전관리대상에서제외됨 - ~/.config/git/gitignore - git_ 저장소 _ 디렉토리 /.gitignore - git_ 저장소 _ 디렉토리 /.git/info/exclude - git 설정파일의 core.excludesfile 에명시된파일 주로 class 파일등컴파일된파일이나컴파일된파일이모여있는디렉토리를버전관리대상에서제외한다. 20
3. 주요기능 3.3 git clone git 저장소를복제해서새저장소를생성한다. git clone 복제할 _git_ 저장소 _url 21
3. 주요기능 3.4 git checkout (1/2) 다른브랜치나 tag로이동 git checkout branch_ 또는 _tag_ 이름 22
3. 주요기능 3.4 git checkout (2/2) 새브랜치를생성하고새브랜치로이동 git checkout -b 새 branch_ 이름 23
3. 주요기능 3.5 git diff 수정내용비교 git diff [ 파일경로 ] 24
3. 주요기능 3.6 git status 현재 git 저장소상태확인 git status 25
3. 주요기능 3.7 git add 수정내용을 commit 대상으로등록 git add 파일경로 _ 또는 _ 디렉터리 디렉터리를지정하면디렉터리내의수정중인모든파일을 commit 대상으로등록 git status 로확인 26
3. 주요기능 3.8 git commit git add로등록되어있는수정내역을한묶음으로해서확정적으로반영 git commit -m 커밋메시지 27
3. 주요기능 3.9 git merge (1/2) 다른브랜치를병합 git merge 병합대상브랜치명 먼저원래의브랜치로돌아가서 병합대상브랜치를병합한다 28
3. 주요기능 3.9 git merge (2/2) 로그로병합결과확인 병합전 1.11-stable 의최종로그 병합후 1.11-stable 의최종로그 29
3. 주요기능 3.10 git rebase (1/2) 현재브랜치의분기기준점 (base) 을재설정 git rebase 분기 _ 기준점으로 _ 설정할 _ 브랜치명 분기기준점을 1.11-stable 의최신커밋으로재설정 30
3. 주요기능 3.10 git rebase (2/2) 분기기준점으로재설정된브랜치 (1.11-stable) 를 checkout 해서, rebase 를실행한브랜치 (rebase-text) 를 merge 해야함 1.11-stable 을 checkout rebase-text 브랜치를 merge 31
3. 주요기능 3.11 git fetch 원격저장소에있는브랜치를로컬저장소로가져온다. git fetch 원격저장소이름 [ 원격저장소 _ 내의 _ 브랜치이름 ] 32
3. 주요기능 3.12 git pull 원격저장소에있는브랜치를로컬저장소로가져와서 merge 한다. git pull 원격저장소이름원격저장소 _ 내의 _ 브랜치이름 원격의 master 브랜치내용을로컬 (origin/master) 로가져오고, 로컬의 master 브랜치에서 origin/master 브랜치를병합 git pull 은 git fetch + git merge 와결과물이같다. 33
3. 주요기능 3.13 git push (1/2) 로컬저장소에있는브랜치를원격저장소에반영한다. git push 원격저장소이름로컬저장소의 _ 브랜치이름 34
3. 주요기능 3.13 git push (2/2) 로컬저장소접근인증 push 완료 35
4. 활용예제 세부목차 4.1 예제소개 4.2 git 서버저장소구축 4.3 로컬저장소구축 36
4. 활용예제 4.1 예제소개 본예제는프로젝트내부에서사용할수있는 git 서버저장소를구축하고, git 서버저장소의내용을로컬에 clone 해서개발환경을구축하는것을목표로한다. 개발환경구축후실제의버전관리활동은 3 장을참고한다. 37
4. 활용예제 4.2 git 서버저장소구축 (1/5) 본예제에서는 Ubuntu 리눅스에 git 서버저장소를구축한다. 설치전권한문제를없애기위해 root 권한으로설치시작 git 설치 git 서버저장소를관리할계정생성 - 계정 : git, 비밀번호 : 1111, 그룹 : git 생성 38
4. 활용예제 4.2 git 서버저장소구축 (2/5) git 서버저장소를위한 repositories 폴더생성 서버에저장할프로젝트생성 파일추가및로컬저장소생성 39
4. 활용예제 4.2 git 서버저장소구축 (3/5) 현재상태확인후최초커밋 40
4. 활용예제 4.2 git 서버저장소구축 (4/5) 서버저장소를만들기위한설정 Project.git 을 git 계정의 repositories 로이동 41
4. 활용예제 4.2 git 서버저장소구축 (5/5) 클라이언트에서 ssh 로접근할수있도록 ssh-server 설치 42
4. 활용예제 4.3 git 로컬저장소구축 서버저장소를 clone 해서로컬저장소를구축한다. 3 장의내용을참고하여로컬저장소에서버전관리활동수행 43