SlideShare ist ein Scribd-Unternehmen logo
1 von 60
1
GIT GUIDE
Ver 1.0
Author : MDLicht
목차
1. GIT FLOW
1. About Git & Git Flow
2. Git Flow
3. GitHub Flow
2. GIT 사용법
1. Git 명령어/기능
2. .gitignore 파일
3. Git 시나리오
3. GIT 사용법 - TortoiseGit
1. 초기설정
2. Branch 생성
3. Checkout
4. Add
5. Commit
6. Pull
7. Merge
8. Push
9. Log
10. Branch 삭제
4. GIT 사용법 - Git Bash
1. 초기설정
2. Branch 생성 및 삭제
3. Checkout
4. Log
5. Status
6. Add / Commit
7. Pull
8. Merge
9. Push
10. 많이 사용하는 Alias
5. 참고자료
1. GIT 설치
2. TortoiseGit 설치
3. Meld 설치
4. 기타
Author : MDLicht
2
3
GIT FLOW
출처 : https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
Author : MDLicht
1. About Git & Git Flow
1. Git의 특징 (Git vs SVN)
1. 로컬 저장소와 원격 저장소의 분리
→ 분산 처리, 데이터 안정성, 빠른 처리 속도
2. 스테이지 영역 존재
→ 커밋 대상 분리
3. 스냅샷을 이용한 버전 관리
→ 빠르고 편리한 브랜치 & 병합 기능
참고자료 : https://www.slideshare.net/einsub/svn-git-17386752 - SVN 능력자를 위한 Git 개념 가이드
2. Git Flow
1. 협업 시 Git을 통해 버전 관리하는 방법 / 약속
2. 크게 Git flow / GitHub flow / GitLab flow로 분류
3. 공통적으로 크게 릴리즈 버전을 관리하는 브랜치와 개발 중인 버전을 관리하는 브랜치로 나뉨
* 브랜치 : 작업 내용 (Commit) 사이를 이동할 수 있는 일종의 포인터
Author : MDLicht
4
2. Git Flow
구조
• Master / Develop 브랜치를 기반
• Feature / Release / Hotfix 브랜치와 함께 운영
장점
• 명령어가 나와있음
• 에디터와 IDE에 플러그인으로 존재
단점
• 브랜치가 많아 복잡함
• 사용하지 않는 브랜치가 있음
Feature
Branch
새로운 기능을 추가하는 브랜치
• 나오는 곳 : Develop 브랜치
• 들어가는 곳 : Develop 브랜치
Release
Branch
새로운 릴리즈를 위한 브랜치
- Develop 브랜치에서 기능을 묶어 Release 브랜치로 이동
- 버그 수정에 대한 부분만 커밋
- 릴리즈 준비 완료 시 Master 브랜치로 병합
• 나오는 곳 : Develop 브랜치
• 들어가는 곳 : Develop, Master 브랜치
Hotfix
Branch
발생한 버그를 수정하는 브랜치
• 나오는 곳 : Master 브랜치
• 들어가는 곳 : Develop, Master 브랜치
Author : MDLicht
5
3. GitHub Flow(1)
구조
• 항상 최신 상태인 Master 브랜치를 기반
• Release 브랜치가 명확하지 않은 시스템에 알맞음
• Hotfix 같은 작은 기능을 구분하지 않음
장점
• 구조가 단순함
• CI가 필수적
• 배포 자동화 가능
단점 • CI 및 배포 자동화가 되어있지 않은 경우 수작업 필요
Master
Branch
• 항상 최신 상태를 유지
• 엄격한 Role 필요
• 기능 테스트 및 리뷰가 끝난 후 Master 브랜치에 병합
ETC
Branch
• 브랜치 생성 시 이름을 자세하게 작성해야함
Remote
Branch
(원격저장소)
• 작업 내용을 수시로 PUSH
master
Author : MDLicht
6
3. GitHub Flow(2)
PUSH
COMMIT
master
Remote
• 로컬 저장소에서 가장 최신 상태인 master 브랜치를 기반으로 하여 다른 브랜치를 생성하여 작업
• 기능 개발 및 버그 수정 시 새로운 브랜치를 생성한 후 작업
• 기능 개발이 완료될 경우 master 브랜치에 병합 및 원격 저장소에 PUSH
• 원격 저장소의 master 브랜치 역시 모든 작업 내용이 포함된 가장 최신 상태를 유지
Author : MDLicht
7
8
GIT 사용법
Author : MDLicht
1. Git 기능/명령어
init Git을 이용할 수 있도록 설정 초기화 add 작업 내용을 스테이지 영역에 등록
clone 기존 원격 저장소에서 작업 내용 복사 commit 작업 내용을 로컬 저장소에 저장
branch Git 브랜치 생성/관리 pull 원격 저장소로부터 최신 작업 내용을 로드
checkout 특정 브랜치 로 이동 push
로컬 저장소에 저장된 작업 내용을 원격 저장소에
저장
merge 특정 브랜치 (A and B)를 하나로 병합 rebase 특정 브랜치로 작업 내용을 이동
status 현재 작업 상태 조회
외 다수 기능/명령어 보유
참고 URL : http://rogerdudler.github.io/git-guide/index.ko.html
Author : MDLicht
9
2. .gitignore 파일
.gitignore 파일?
• 프로젝트 업데이트 시 백업 파일, 컴파일 파일, 로그 파일 등 불필요한 파일을 Git에서 제외시킬 수 있는 설정을 담은 파일
• 프로젝트 생성 시 .gitignore 파일을 설정하는 것을 권장
파일 생성 및 적용
• Git 커맨드 창에서 vim .gitignore 로 파일 생성 후 Git에 불필요한 파일명을 기록 (예 - *.log , sample.png , build/ , doc/*.txt)
• 프로젝트 최상위 디렉터리에 .gitignore 파일을 생성
• .gitignore 파일 생성 후 로컬 저장소에 Commit 및 원격 저장소에 Push
.gitignore.io - https://www.gitignore.io/
• 입력한 언어 환경에 맞는 .gitignore 파일 내용을 자동 생성하는 서비스
[검색창에 개발환경 검색] [예 - 생성된 안드로이드 개발환경의 .gitignore 파일 내용]
Author : MDLicht
10
3. Git 이용 시나리오
Init
Clone
Work
Branch
생성
Work
Branch
Check-out
변경사항
Add
변경사항
Commit
Master
Branch
Check-out
Pull
Merge
with
Work
Branch
Push
Git
초기화
원격 저장소와 동기화 및
원격 저장소에 작업 내용 반영
새로운 작업 및 로컬 저장소에 저장
#1
#2
#3
M
PUSH
R
#3. 원격 저장소에
작업 내용 저장
#1. 원격 저장소로부터
최신 사항 불러오기
M
PULL
#2. 최신 사항이 반영된
master 브랜치와 작업 내용 병합
M
MERGE
추가 변경사항 적용
Author : MDLicht
11
12
GIT 사용법
- Tortoise Git -
Author : MDLicht
1. TortoiseGit 초기 설정
[새 Git 작업환경 설정 시]
Git 로컬 저장소를 만들 폴더에서 우클릭 후
[Git Create repository here…] 클릭
[기존 Git 작업환경 이용 시]
Git 로컬 저장소를 만들 폴더에서 우클릭 후
[Git Clone] 클릭
OR
데이터를 불러올 원격 저장소 URL 및
로컬 저장소 경로를 지정한 후 [OK] 버튼 클릭
Git 정보가 포함된 .git 폴더 및 프로젝트 폴더 생성
Author : MDLicht
13
2. TortoiseGit Branch 생성
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Create Bracn…] 선택
브랜치 이름 및 브랜치가 생성될 위치를 선택 후
[OK] 버튼 클릭
HEAD (master)
• HEAD 는 현재 참조하고 있는 작업 내용, 브랜치를 의미
• 이 경우 master 브랜치를 참조하고 있음을 알 수 있음
• Commit, Pull, Push 등 Git 작업을 할 때 현재 HEAD가 어느
위치인지 확인 및 주의해야함
메뉴 선택 시 브랜치 생성과 동시에 새로운 브랜
치로 Checkout
(HEAD를 새로운 브랜치로 이동)
Author : MDLicht
14
2. TortoiseGit Branch 생성 - Revision Graph
브랜치 생성 전 [TestBranch] 브랜치 생성 후
빨간색 브랜치 : 현재 HEAD(참조중인 브랜치)
초록색 브랜치 : 로컬 저장소에서 생성한 브랜치
연주황색 브랜치 : 원격 저장소의 브랜치
새로운 TestBranch를 생성했으나 HEAD는 아직 master 브
랜치인 상태
Author : MDLicht
15
2. TortoiseGit 특정 Branch로 이동 (Checkout)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Switch/Checkout…] 선택
Checkout 하려는 브랜치 이름을 선택한 후
[OK] 버튼 클릭
태그 및 커밋 id를 이용하여
Checkout 가능
Author : MDLicht
16
3. TortoiseGit 특정 Branch로 이동 (Checkout) - Revision Graph
[TestBranch]로 Checkout 전 [TestBranch]로 Checkout 후
HEAD가 TestBranch임을 알 수 있음
Author : MDLicht
17
4. TortoiseGit Add (작업 내용을 스테이지 영역에 등록)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Add…] 선택
버전 관리하려는 파일을 선택한 후 [OK] 버튼 클릭
(이후 변경 사항 발생 시 ‘수정된 파일’로 관리)
Author : MDLicht
18
5. TortoiseGit Commit (로컬 저장소에 작업 내용 저장)
프로젝트 폴더 우클릭 후
[Git Commit -> “OOO Branch”] 메뉴 클릭
Commit 메시지 작성 및 저장하려는 작업내용을
선택한 후 [Commit] 버튼 클릭
해당 Commit (작업 내용)에 반영된 내용 등의 메시지를적을 수 있는 공간
원격 저장소에 저장할 변경된 작업 내용들을 선택하는 공간
Modified Files
• 이전 Commit에서Git에 업데이트되어 변경사항을관리받고 있는 파일 가운데에서수
정된 파일을 의미
Not Versioned Files
• 아직 Git에 업데이트 되지 않아 변경사항이관리되지않고 있는 파일을 의미
• 해당 파일을 선택하여 Add해야 작업 내용이 Commit에 반영됨
Author : MDLicht
19
5. TortoiseGit Commit (로컬 저장소에 작업 내용 저장) - Revision Graph
[TestBranch] Commit 전 [TestBranch] Commit 후
이 때, master 브랜치 와 TestBranch 브랜치의 내용은 다름
Author : MDLicht
20
6. TortoiseGit Pull (원격 저장소의 최신 사항 불러오기)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Switch/Checkout…] 선택
[master Branch] 선택한 후
[OK] 버튼 클릭
원격 저장소 명
원격 저장소 브랜치명
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Pull…] 선택
원격 저장소에 저장되어 있는 정보를 받기 위해
필요한 옵션을 설정한 후 [OK] 버튼 클릭
Author : MDLicht
21
6. TortoiseGit Pull (원격 저장소의 최신 사항 불러오기) - Revision Graph
원격 저장소 내용을 불러오기 전 원격 저장소 내용을 불러온 후
현재 HEAD가 master 브랜치라는 것과
원격 저장소와 로컬 저장소의 master의 내용이 동일한 상태임을 알 수 있음.
Author : MDLicht
22
7. TortoiseGit Merge (작업 내용 병합)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Merge…] 선택
병합하려는 브랜치를 선택한 후 [OK] 버튼 클릭
(현재 HEAD인 master와 작업 내용인 TestBranch를 병합)
Author : MDLicht
23
7. TortoiseGit Merge (작업 내용 병합)
master 브랜치와 TestBranch 브랜치 병합 전 master 브랜치와 TestBranch 브랜치 병합 후
Author : MDLicht
24
8. TortoiseGit Push (작업 내용을 원격 저장소에 저장)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Push…] 선택
로컬 저장소 및 원격 저장소 브랜치 설정 후
[OK] 버튼 클릭
Author : MDLicht
25
8. TortoiseGit Push (작업 내용을 원격 저장소에 저장) - Revision Graph
변경사항을 원격 저장소에 Push 전 변경사항을 원격 저장소에 Push 후
HEAD가 master 브랜치이며, 원격 저장소의 내용과
로컬 저장소의 master가 동일한 내용임을 알 수 있음
Author : MDLicht
26
9. TortoiseGit Commit 내역 조회 (Log)
프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의
[Show log] 선택
현재까지의 Commit 내역 및
각 브랜치의 정보를 조회 가능
Author : MDLicht
27
10. TortoiseGit 사용하지 않는 Branch 이름 삭제
Git Log에서 삭제하려는 브랜치 이름 우클릭 후
[Delete refs/heads/OOO] 메뉴 클릭
해당 브랜치 이름이 삭제된 것을 확인
Author : MDLicht
28
29
GIT 사용법
- Git Bash -
Author : MDLicht
1. Git 초기 설정
[새 Git 작업환경 설정 시]
git init 명령어를 입력하여 로컬 저장소 설정
[기존 Git 작업환경 이용 시]
git clone REMOTE_STORAGE_URL 명령어를
입력하여 원격 저장소의 데이터를 로드
OR
Git 정보가 포함된 .git 폴더 및 프로젝트 폴더
Author : MDLicht
30
2. Git Branch 생성 및 삭제
git branch BRANCH_NAME 명령어로 새로운 브랜치 생성 git branch 명령어로 브랜치 리스트 확인
1) 생성
git branch –d BRANCH_NAME 명령어로 해당 브랜치 삭제
2) 삭제
git branch 명령어로 브랜치 리스트 확인
Author : MDLicht
31
3. Git Checkout
git checkout BRANCH_NAME 명령어로 선택한 브랜치로 이동
HEAD가 master 브랜치에서
test_branch 브랜치로 변경된
것을 확인
체크아웃 결과 확인
1) 일반
2) 옵션
HEAD가 master 브랜치에서
새로 생성된 test_branch
브랜치로 변경된 것을 확인
git checkout -b BRANCH_NAME 명령어로 새로운 브랜치 생성 및 이동 생성된 브랜치 및 체크아웃 확인
Author : MDLicht
32
4. Git Log
git log 명령어로 Commit 내역 확인
1) 일반 git log 명령어
#40 슬라이드에 있는 Alias 설정한 후
git lg 명령어로 트리 구조 Commit 내역 확인
2) Better git log
Commit 내역에 대한 키 값
브랜치 이름 대신 해당 키 값으로
Checkout 가능 Commit 메시지
Commit 한 사용자
Commit 시간
해당 Commit에 대한 브랜치 정보
‘HEAD->’ 가 붙은 브랜치가 현재 HEAD
Author : MDLicht
33
5. Git Status
git status 명령어를 통한 현재 git 상태 조회
git에 의해 버전관리가 되고 있으며, 수정사항이 발생한 파일
git에 의해 버전관리가 되고있지 않은 파일
스테이지 영역에 등록되지 않은 상태
Author : MDLicht
34
6. Git Add and Commit
stage 상태로 전환된 파일
1. git add . 명령어를 입력하여 모든 수정, 생성된 파일을
unstage 상태에서 stage 상태로 전환
2. git status 명령어를 입력하여 stage 상태로 전환된 파
일 리스트 확인
3. git commit –m ‘COMMIT_MSG’ 명령어를 입력하
여 stage 상태로 전환된 파일들만 메시지와 함께 커밋
에 반영
Author : MDLicht
35
6. Git Add and Commit
git lg 명령어를 입력하여 변경 사항이 반영된 Commit이 된 것을 확인
* git lg 는 alias 로 지정
Author : MDLicht
36
7. Git Pull
HEAD를 master 브랜치로 이동한 후, git pull 명령어로 원격 저장소로부터 최신 데이터 로드
Author : MDLicht
37
8. Git Merge
작업 내용이 병합된 master 브랜치를 확인 가능
Push를 하지 않아 원격 저장소(origin/master)와
로컬 저장소(master)의 내용이 다름
HEAD가 master 브랜치인 상태에서,
git merge OTHER_BRANCH_NAME 명령어로
Master 브랜치와 작업 내용이 포함된 브랜치를 병합
Author : MDLicht
38
9. Git Push
git push REMOTE_STORAGE REMOTE_BRANCH 명령어로
원격 저장소에 작업 내용 저장
git lg 명령어를 입력하여 로컬 저장소(master)와
원격 저장소(origin/master)의 내용이 같음을 확인
* git lg 는 alias 로 지정, 다음 슬라이드 참고
Author : MDLicht
39
7. 많이 사용하는 Git 명령어 Alias
git config --global alias.YOUR_ALIAS GIT_COMMAND 의 명령어로 특정 명령어를 지정할 수 있다.
많이 사용하는 Git 명령어 Alias는 아래와 같다.
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -
%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
Author : MDLicht
40
41
참고자료
Author : MDLicht
42
GIT 설치
Author : MDLicht
1. Git 설치(1)
https://git-scm.com/ 에 접속한 후, OS별 Git 다운로드 페이지로 이동
Author : MDLicht
43
1. Git 설치(2)
설치할 요소를 선택 후 [다음] 버튼 클릭
※ 가급적 기본 요소를 설치
[Use Git from the Windows Command Prompt]
선택 후 [다음] 버튼 클릭
※ 윈도우 커맨드 창에서도 Git 명령어 입력 가능
Author : MDLicht
44
1. Git 설치(3)
[Use the OpenSSL library] 선택 후
[다음] 버튼 클릭
[Checkout Windows-style, commit -]
선택 후 [다음] 버튼 클릭
Author : MDLicht
45
1. Git 설치(4)
[Use MinTTY] 선택 후 [다음] 버튼 클릭
※ 기본 Git 커맨드 창으로 전용 입력창을 사용
추가 옵션 선택 후 [설치] 버튼 클릭
Author : MDLicht
46
1. Git 설치(5)
설치 후 우클릭 시 추가된 Git 메뉴 확인 [Git Bash Here] 선택 시 실행되는 Git 커맨드 창
Author : MDLicht
47
48
TortoiseGit 설치
Author : MDLicht
1. TortoiseGit 설치(1)
https://tortoisegit.org/ 에 접속한 후, OS 환경에 맞는 설치 파일 다운로드
Author : MDLicht
49
1. TortoiseGit 설치(2)
[다음] 버튼 클릭 필요한 기능 및 경로 설정 후 [다음] 버튼 클릭
Author : MDLicht
50
1. TortoiseGit 설치(3)
설치 후 우클릭 시 추가된 Git 메뉴 확인 TortoiseGit 메뉴 리스트
Author : MDLicht
51
52
Meld 설치
Author : MDLicht
1. Meld 설치(1)
http://meldmerge.org/ 에 접속한 후, OS 환경에 맞는 설치 파일 다운로드
Author : MDLicht
53
1. Meld 설치(2)
윈도우키 입력 후
Git Bash 검색하여 실행
ls -al 을 입력하여 .gitconfig
파일이 있는지 확인
Author : MDLicht
54
1. Meld 설치(3) - mergetool 지정
vim .gitconfig 입력하여 파일을 연 후 i를 입력하여 끼워넣기 모드로 전환 후 하단의 내용 추가
[merge]
tool = meld
[mergetool "meld"]
path = C:Program Files (x86)Meldmeldmeld.exe (Meld 설치 경로)
keepBackup = false
trustExitCode = false
내용 추가 후 ESC → :wq → 엔터 입력하여 추가된 내용 저장
Author : MDLicht
55
1. Meld 설치(4) - difftool 지정
vim .gitconfig 입력하여 파일을 연 후 i를 입력하여 끼워넣기 모드로 전환 후 하단의 내용 추가
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
path = C:Program Files (x86)Meldmeldmeld.exe (Meld 설치 경로)
내용 추가 후 ESC → :wq → 엔터 입력하여 추가된 내용 저장
Author : MDLicht
56
1. Meld 설치(5) - mergetool 실행
• Merge 시 충돌이 발생했을 경우, git mergetool 명령어를 이용하여 meld 실행 가능
• 현재 상황(가운데)를 중심으로 로컬저장소(왼쪽), 원격저장소(오른쪽)의 내용을 참고 및 적용하여 병합 가능
• 화살표 위에 마우스 포인터를 두고 Ctrl 입력 시 추가, Shift 입력 시 삭제 가능
• 수정된 사항을 저장한 후 창 종료 시 다음 충돌된 사항을 표시
Author : MDLicht
57
1. Meld 설치(6) - difftool 실행
• 변경사항을 확인하고 싶을 경우 git difftool [commit id | 파일명] 을 입력하여 difftool 실행
• git difftool 만 입력할 경우 현재 변경된 모든 사항을 확인 가능
Author : MDLicht
58
59
기타
Author : MDLicht
1. 참고자료
Learning Git
• https://learngitbranching.js.org/
• http://learnbranch.urigit.com/
Git Documentation
• https://git-scm.com/doc
Git Book
• https://mylko72.gitbooks.io/git/content/
Git Flow
• https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
Git Guide
• http://rogerdudler.github.io/git-guide/index.ko.html
Git vs SVN
• https://www.slideshare.net/einsub/svn-git-17386752
Author : MDLicht
60

Weitere ähnliche Inhalte

Was ist angesagt?

Learning git
Learning gitLearning git
Learning gitSid Anand
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Omar Fathy
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitLukas Fittl
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewRueful Robin
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdfTilton2
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHubNicolás Tourné
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitE Carter
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hubNaveen Pandey
 

Was ist angesagt? (20)

Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Learning git
Learning gitLearning git
Learning git
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git basics
Git basicsGit basics
Git basics
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git training v10
Git training v10Git training v10
Git training v10
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Git and github
Git and githubGit and github
Git and github
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Git commands
Git commandsGit commands
Git commands
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 

Ähnlich wie Git Tutorial

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 사용법 실습BJ Jang
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Dabi Ahn
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating IntroductionJongwook Choi
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
[VCS] Git&GitLab_Designer
[VCS] Git&GitLab_Designer[VCS] Git&GitLab_Designer
[VCS] Git&GitLab_DesignerLee Beomho
 
[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
 
GithubWithTerminal.pptx
GithubWithTerminal.pptxGithubWithTerminal.pptx
GithubWithTerminal.pptxJUNSHIN8
 
[기초] GIT 교육 자료
[기초] GIT 교육 자료[기초] GIT 교육 자료
[기초] GIT 교육 자료JUNPIL PARK
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드Ted Won
 
Git from google techtalks by Randal
Git from google techtalks by RandalGit from google techtalks by Randal
Git from google techtalks by Randalyagurchoi
 

Ähnlich wie Git Tutorial (20)

Git
GitGit
Git
 
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 사용법 실습
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션
 
11. git basic
11. git basic11. git basic
11. git basic
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating Introduction
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
[VCS] Git&GitLab_Designer
[VCS] Git&GitLab_Designer[VCS] Git&GitLab_Designer
[VCS] Git&GitLab_Designer
 
[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 command
Git commandGit command
Git command
 
GithubWithTerminal.pptx
GithubWithTerminal.pptxGithubWithTerminal.pptx
GithubWithTerminal.pptx
 
[기초] GIT 교육 자료
[기초] GIT 교육 자료[기초] GIT 교육 자료
[기초] GIT 교육 자료
 
Git 코드랩 스터디 1
Git 코드랩 스터디 1Git 코드랩 스터디 1
Git 코드랩 스터디 1
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
Git & GitHub
Git & GitHubGit & GitHub
Git & GitHub
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드
 
Git 기본
Git 기본Git 기본
Git 기본
 
Git from google techtalks by Randal
Git from google techtalks by RandalGit from google techtalks by Randal
Git from google techtalks by Randal
 

Kürzlich hochgeladen

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Kürzlich hochgeladen (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

Git Tutorial

  • 2. 목차 1. GIT FLOW 1. About Git & Git Flow 2. Git Flow 3. GitHub Flow 2. GIT 사용법 1. Git 명령어/기능 2. .gitignore 파일 3. Git 시나리오 3. GIT 사용법 - TortoiseGit 1. 초기설정 2. Branch 생성 3. Checkout 4. Add 5. Commit 6. Pull 7. Merge 8. Push 9. Log 10. Branch 삭제 4. GIT 사용법 - Git Bash 1. 초기설정 2. Branch 생성 및 삭제 3. Checkout 4. Log 5. Status 6. Add / Commit 7. Pull 8. Merge 9. Push 10. 많이 사용하는 Alias 5. 참고자료 1. GIT 설치 2. TortoiseGit 설치 3. Meld 설치 4. 기타 Author : MDLicht 2
  • 3. 3 GIT FLOW 출처 : https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/ Author : MDLicht
  • 4. 1. About Git & Git Flow 1. Git의 특징 (Git vs SVN) 1. 로컬 저장소와 원격 저장소의 분리 → 분산 처리, 데이터 안정성, 빠른 처리 속도 2. 스테이지 영역 존재 → 커밋 대상 분리 3. 스냅샷을 이용한 버전 관리 → 빠르고 편리한 브랜치 & 병합 기능 참고자료 : https://www.slideshare.net/einsub/svn-git-17386752 - SVN 능력자를 위한 Git 개념 가이드 2. Git Flow 1. 협업 시 Git을 통해 버전 관리하는 방법 / 약속 2. 크게 Git flow / GitHub flow / GitLab flow로 분류 3. 공통적으로 크게 릴리즈 버전을 관리하는 브랜치와 개발 중인 버전을 관리하는 브랜치로 나뉨 * 브랜치 : 작업 내용 (Commit) 사이를 이동할 수 있는 일종의 포인터 Author : MDLicht 4
  • 5. 2. Git Flow 구조 • Master / Develop 브랜치를 기반 • Feature / Release / Hotfix 브랜치와 함께 운영 장점 • 명령어가 나와있음 • 에디터와 IDE에 플러그인으로 존재 단점 • 브랜치가 많아 복잡함 • 사용하지 않는 브랜치가 있음 Feature Branch 새로운 기능을 추가하는 브랜치 • 나오는 곳 : Develop 브랜치 • 들어가는 곳 : Develop 브랜치 Release Branch 새로운 릴리즈를 위한 브랜치 - Develop 브랜치에서 기능을 묶어 Release 브랜치로 이동 - 버그 수정에 대한 부분만 커밋 - 릴리즈 준비 완료 시 Master 브랜치로 병합 • 나오는 곳 : Develop 브랜치 • 들어가는 곳 : Develop, Master 브랜치 Hotfix Branch 발생한 버그를 수정하는 브랜치 • 나오는 곳 : Master 브랜치 • 들어가는 곳 : Develop, Master 브랜치 Author : MDLicht 5
  • 6. 3. GitHub Flow(1) 구조 • 항상 최신 상태인 Master 브랜치를 기반 • Release 브랜치가 명확하지 않은 시스템에 알맞음 • Hotfix 같은 작은 기능을 구분하지 않음 장점 • 구조가 단순함 • CI가 필수적 • 배포 자동화 가능 단점 • CI 및 배포 자동화가 되어있지 않은 경우 수작업 필요 Master Branch • 항상 최신 상태를 유지 • 엄격한 Role 필요 • 기능 테스트 및 리뷰가 끝난 후 Master 브랜치에 병합 ETC Branch • 브랜치 생성 시 이름을 자세하게 작성해야함 Remote Branch (원격저장소) • 작업 내용을 수시로 PUSH master Author : MDLicht 6
  • 7. 3. GitHub Flow(2) PUSH COMMIT master Remote • 로컬 저장소에서 가장 최신 상태인 master 브랜치를 기반으로 하여 다른 브랜치를 생성하여 작업 • 기능 개발 및 버그 수정 시 새로운 브랜치를 생성한 후 작업 • 기능 개발이 완료될 경우 master 브랜치에 병합 및 원격 저장소에 PUSH • 원격 저장소의 master 브랜치 역시 모든 작업 내용이 포함된 가장 최신 상태를 유지 Author : MDLicht 7
  • 9. 1. Git 기능/명령어 init Git을 이용할 수 있도록 설정 초기화 add 작업 내용을 스테이지 영역에 등록 clone 기존 원격 저장소에서 작업 내용 복사 commit 작업 내용을 로컬 저장소에 저장 branch Git 브랜치 생성/관리 pull 원격 저장소로부터 최신 작업 내용을 로드 checkout 특정 브랜치 로 이동 push 로컬 저장소에 저장된 작업 내용을 원격 저장소에 저장 merge 특정 브랜치 (A and B)를 하나로 병합 rebase 특정 브랜치로 작업 내용을 이동 status 현재 작업 상태 조회 외 다수 기능/명령어 보유 참고 URL : http://rogerdudler.github.io/git-guide/index.ko.html Author : MDLicht 9
  • 10. 2. .gitignore 파일 .gitignore 파일? • 프로젝트 업데이트 시 백업 파일, 컴파일 파일, 로그 파일 등 불필요한 파일을 Git에서 제외시킬 수 있는 설정을 담은 파일 • 프로젝트 생성 시 .gitignore 파일을 설정하는 것을 권장 파일 생성 및 적용 • Git 커맨드 창에서 vim .gitignore 로 파일 생성 후 Git에 불필요한 파일명을 기록 (예 - *.log , sample.png , build/ , doc/*.txt) • 프로젝트 최상위 디렉터리에 .gitignore 파일을 생성 • .gitignore 파일 생성 후 로컬 저장소에 Commit 및 원격 저장소에 Push .gitignore.io - https://www.gitignore.io/ • 입력한 언어 환경에 맞는 .gitignore 파일 내용을 자동 생성하는 서비스 [검색창에 개발환경 검색] [예 - 생성된 안드로이드 개발환경의 .gitignore 파일 내용] Author : MDLicht 10
  • 11. 3. Git 이용 시나리오 Init Clone Work Branch 생성 Work Branch Check-out 변경사항 Add 변경사항 Commit Master Branch Check-out Pull Merge with Work Branch Push Git 초기화 원격 저장소와 동기화 및 원격 저장소에 작업 내용 반영 새로운 작업 및 로컬 저장소에 저장 #1 #2 #3 M PUSH R #3. 원격 저장소에 작업 내용 저장 #1. 원격 저장소로부터 최신 사항 불러오기 M PULL #2. 최신 사항이 반영된 master 브랜치와 작업 내용 병합 M MERGE 추가 변경사항 적용 Author : MDLicht 11
  • 12. 12 GIT 사용법 - Tortoise Git - Author : MDLicht
  • 13. 1. TortoiseGit 초기 설정 [새 Git 작업환경 설정 시] Git 로컬 저장소를 만들 폴더에서 우클릭 후 [Git Create repository here…] 클릭 [기존 Git 작업환경 이용 시] Git 로컬 저장소를 만들 폴더에서 우클릭 후 [Git Clone] 클릭 OR 데이터를 불러올 원격 저장소 URL 및 로컬 저장소 경로를 지정한 후 [OK] 버튼 클릭 Git 정보가 포함된 .git 폴더 및 프로젝트 폴더 생성 Author : MDLicht 13
  • 14. 2. TortoiseGit Branch 생성 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Create Bracn…] 선택 브랜치 이름 및 브랜치가 생성될 위치를 선택 후 [OK] 버튼 클릭 HEAD (master) • HEAD 는 현재 참조하고 있는 작업 내용, 브랜치를 의미 • 이 경우 master 브랜치를 참조하고 있음을 알 수 있음 • Commit, Pull, Push 등 Git 작업을 할 때 현재 HEAD가 어느 위치인지 확인 및 주의해야함 메뉴 선택 시 브랜치 생성과 동시에 새로운 브랜 치로 Checkout (HEAD를 새로운 브랜치로 이동) Author : MDLicht 14
  • 15. 2. TortoiseGit Branch 생성 - Revision Graph 브랜치 생성 전 [TestBranch] 브랜치 생성 후 빨간색 브랜치 : 현재 HEAD(참조중인 브랜치) 초록색 브랜치 : 로컬 저장소에서 생성한 브랜치 연주황색 브랜치 : 원격 저장소의 브랜치 새로운 TestBranch를 생성했으나 HEAD는 아직 master 브 랜치인 상태 Author : MDLicht 15
  • 16. 2. TortoiseGit 특정 Branch로 이동 (Checkout) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Switch/Checkout…] 선택 Checkout 하려는 브랜치 이름을 선택한 후 [OK] 버튼 클릭 태그 및 커밋 id를 이용하여 Checkout 가능 Author : MDLicht 16
  • 17. 3. TortoiseGit 특정 Branch로 이동 (Checkout) - Revision Graph [TestBranch]로 Checkout 전 [TestBranch]로 Checkout 후 HEAD가 TestBranch임을 알 수 있음 Author : MDLicht 17
  • 18. 4. TortoiseGit Add (작업 내용을 스테이지 영역에 등록) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Add…] 선택 버전 관리하려는 파일을 선택한 후 [OK] 버튼 클릭 (이후 변경 사항 발생 시 ‘수정된 파일’로 관리) Author : MDLicht 18
  • 19. 5. TortoiseGit Commit (로컬 저장소에 작업 내용 저장) 프로젝트 폴더 우클릭 후 [Git Commit -> “OOO Branch”] 메뉴 클릭 Commit 메시지 작성 및 저장하려는 작업내용을 선택한 후 [Commit] 버튼 클릭 해당 Commit (작업 내용)에 반영된 내용 등의 메시지를적을 수 있는 공간 원격 저장소에 저장할 변경된 작업 내용들을 선택하는 공간 Modified Files • 이전 Commit에서Git에 업데이트되어 변경사항을관리받고 있는 파일 가운데에서수 정된 파일을 의미 Not Versioned Files • 아직 Git에 업데이트 되지 않아 변경사항이관리되지않고 있는 파일을 의미 • 해당 파일을 선택하여 Add해야 작업 내용이 Commit에 반영됨 Author : MDLicht 19
  • 20. 5. TortoiseGit Commit (로컬 저장소에 작업 내용 저장) - Revision Graph [TestBranch] Commit 전 [TestBranch] Commit 후 이 때, master 브랜치 와 TestBranch 브랜치의 내용은 다름 Author : MDLicht 20
  • 21. 6. TortoiseGit Pull (원격 저장소의 최신 사항 불러오기) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Switch/Checkout…] 선택 [master Branch] 선택한 후 [OK] 버튼 클릭 원격 저장소 명 원격 저장소 브랜치명 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Pull…] 선택 원격 저장소에 저장되어 있는 정보를 받기 위해 필요한 옵션을 설정한 후 [OK] 버튼 클릭 Author : MDLicht 21
  • 22. 6. TortoiseGit Pull (원격 저장소의 최신 사항 불러오기) - Revision Graph 원격 저장소 내용을 불러오기 전 원격 저장소 내용을 불러온 후 현재 HEAD가 master 브랜치라는 것과 원격 저장소와 로컬 저장소의 master의 내용이 동일한 상태임을 알 수 있음. Author : MDLicht 22
  • 23. 7. TortoiseGit Merge (작업 내용 병합) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Merge…] 선택 병합하려는 브랜치를 선택한 후 [OK] 버튼 클릭 (현재 HEAD인 master와 작업 내용인 TestBranch를 병합) Author : MDLicht 23
  • 24. 7. TortoiseGit Merge (작업 내용 병합) master 브랜치와 TestBranch 브랜치 병합 전 master 브랜치와 TestBranch 브랜치 병합 후 Author : MDLicht 24
  • 25. 8. TortoiseGit Push (작업 내용을 원격 저장소에 저장) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Push…] 선택 로컬 저장소 및 원격 저장소 브랜치 설정 후 [OK] 버튼 클릭 Author : MDLicht 25
  • 26. 8. TortoiseGit Push (작업 내용을 원격 저장소에 저장) - Revision Graph 변경사항을 원격 저장소에 Push 전 변경사항을 원격 저장소에 Push 후 HEAD가 master 브랜치이며, 원격 저장소의 내용과 로컬 저장소의 master가 동일한 내용임을 알 수 있음 Author : MDLicht 26
  • 27. 9. TortoiseGit Commit 내역 조회 (Log) 프로젝트 폴더 우클릭 후 [TortoiseGit] 메뉴 아래의 [Show log] 선택 현재까지의 Commit 내역 및 각 브랜치의 정보를 조회 가능 Author : MDLicht 27
  • 28. 10. TortoiseGit 사용하지 않는 Branch 이름 삭제 Git Log에서 삭제하려는 브랜치 이름 우클릭 후 [Delete refs/heads/OOO] 메뉴 클릭 해당 브랜치 이름이 삭제된 것을 확인 Author : MDLicht 28
  • 29. 29 GIT 사용법 - Git Bash - Author : MDLicht
  • 30. 1. Git 초기 설정 [새 Git 작업환경 설정 시] git init 명령어를 입력하여 로컬 저장소 설정 [기존 Git 작업환경 이용 시] git clone REMOTE_STORAGE_URL 명령어를 입력하여 원격 저장소의 데이터를 로드 OR Git 정보가 포함된 .git 폴더 및 프로젝트 폴더 Author : MDLicht 30
  • 31. 2. Git Branch 생성 및 삭제 git branch BRANCH_NAME 명령어로 새로운 브랜치 생성 git branch 명령어로 브랜치 리스트 확인 1) 생성 git branch –d BRANCH_NAME 명령어로 해당 브랜치 삭제 2) 삭제 git branch 명령어로 브랜치 리스트 확인 Author : MDLicht 31
  • 32. 3. Git Checkout git checkout BRANCH_NAME 명령어로 선택한 브랜치로 이동 HEAD가 master 브랜치에서 test_branch 브랜치로 변경된 것을 확인 체크아웃 결과 확인 1) 일반 2) 옵션 HEAD가 master 브랜치에서 새로 생성된 test_branch 브랜치로 변경된 것을 확인 git checkout -b BRANCH_NAME 명령어로 새로운 브랜치 생성 및 이동 생성된 브랜치 및 체크아웃 확인 Author : MDLicht 32
  • 33. 4. Git Log git log 명령어로 Commit 내역 확인 1) 일반 git log 명령어 #40 슬라이드에 있는 Alias 설정한 후 git lg 명령어로 트리 구조 Commit 내역 확인 2) Better git log Commit 내역에 대한 키 값 브랜치 이름 대신 해당 키 값으로 Checkout 가능 Commit 메시지 Commit 한 사용자 Commit 시간 해당 Commit에 대한 브랜치 정보 ‘HEAD->’ 가 붙은 브랜치가 현재 HEAD Author : MDLicht 33
  • 34. 5. Git Status git status 명령어를 통한 현재 git 상태 조회 git에 의해 버전관리가 되고 있으며, 수정사항이 발생한 파일 git에 의해 버전관리가 되고있지 않은 파일 스테이지 영역에 등록되지 않은 상태 Author : MDLicht 34
  • 35. 6. Git Add and Commit stage 상태로 전환된 파일 1. git add . 명령어를 입력하여 모든 수정, 생성된 파일을 unstage 상태에서 stage 상태로 전환 2. git status 명령어를 입력하여 stage 상태로 전환된 파 일 리스트 확인 3. git commit –m ‘COMMIT_MSG’ 명령어를 입력하 여 stage 상태로 전환된 파일들만 메시지와 함께 커밋 에 반영 Author : MDLicht 35
  • 36. 6. Git Add and Commit git lg 명령어를 입력하여 변경 사항이 반영된 Commit이 된 것을 확인 * git lg 는 alias 로 지정 Author : MDLicht 36
  • 37. 7. Git Pull HEAD를 master 브랜치로 이동한 후, git pull 명령어로 원격 저장소로부터 최신 데이터 로드 Author : MDLicht 37
  • 38. 8. Git Merge 작업 내용이 병합된 master 브랜치를 확인 가능 Push를 하지 않아 원격 저장소(origin/master)와 로컬 저장소(master)의 내용이 다름 HEAD가 master 브랜치인 상태에서, git merge OTHER_BRANCH_NAME 명령어로 Master 브랜치와 작업 내용이 포함된 브랜치를 병합 Author : MDLicht 38
  • 39. 9. Git Push git push REMOTE_STORAGE REMOTE_BRANCH 명령어로 원격 저장소에 작업 내용 저장 git lg 명령어를 입력하여 로컬 저장소(master)와 원격 저장소(origin/master)의 내용이 같음을 확인 * git lg 는 alias 로 지정, 다음 슬라이드 참고 Author : MDLicht 39
  • 40. 7. 많이 사용하는 Git 명령어 Alias git config --global alias.YOUR_ALIAS GIT_COMMAND 의 명령어로 특정 명령어를 지정할 수 있다. 많이 사용하는 Git 명령어 Alias는 아래와 같다. git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" Author : MDLicht 40
  • 43. 1. Git 설치(1) https://git-scm.com/ 에 접속한 후, OS별 Git 다운로드 페이지로 이동 Author : MDLicht 43
  • 44. 1. Git 설치(2) 설치할 요소를 선택 후 [다음] 버튼 클릭 ※ 가급적 기본 요소를 설치 [Use Git from the Windows Command Prompt] 선택 후 [다음] 버튼 클릭 ※ 윈도우 커맨드 창에서도 Git 명령어 입력 가능 Author : MDLicht 44
  • 45. 1. Git 설치(3) [Use the OpenSSL library] 선택 후 [다음] 버튼 클릭 [Checkout Windows-style, commit -] 선택 후 [다음] 버튼 클릭 Author : MDLicht 45
  • 46. 1. Git 설치(4) [Use MinTTY] 선택 후 [다음] 버튼 클릭 ※ 기본 Git 커맨드 창으로 전용 입력창을 사용 추가 옵션 선택 후 [설치] 버튼 클릭 Author : MDLicht 46
  • 47. 1. Git 설치(5) 설치 후 우클릭 시 추가된 Git 메뉴 확인 [Git Bash Here] 선택 시 실행되는 Git 커맨드 창 Author : MDLicht 47
  • 49. 1. TortoiseGit 설치(1) https://tortoisegit.org/ 에 접속한 후, OS 환경에 맞는 설치 파일 다운로드 Author : MDLicht 49
  • 50. 1. TortoiseGit 설치(2) [다음] 버튼 클릭 필요한 기능 및 경로 설정 후 [다음] 버튼 클릭 Author : MDLicht 50
  • 51. 1. TortoiseGit 설치(3) 설치 후 우클릭 시 추가된 Git 메뉴 확인 TortoiseGit 메뉴 리스트 Author : MDLicht 51
  • 53. 1. Meld 설치(1) http://meldmerge.org/ 에 접속한 후, OS 환경에 맞는 설치 파일 다운로드 Author : MDLicht 53
  • 54. 1. Meld 설치(2) 윈도우키 입력 후 Git Bash 검색하여 실행 ls -al 을 입력하여 .gitconfig 파일이 있는지 확인 Author : MDLicht 54
  • 55. 1. Meld 설치(3) - mergetool 지정 vim .gitconfig 입력하여 파일을 연 후 i를 입력하여 끼워넣기 모드로 전환 후 하단의 내용 추가 [merge] tool = meld [mergetool "meld"] path = C:Program Files (x86)Meldmeldmeld.exe (Meld 설치 경로) keepBackup = false trustExitCode = false 내용 추가 후 ESC → :wq → 엔터 입력하여 추가된 내용 저장 Author : MDLicht 55
  • 56. 1. Meld 설치(4) - difftool 지정 vim .gitconfig 입력하여 파일을 연 후 i를 입력하여 끼워넣기 모드로 전환 후 하단의 내용 추가 [diff] tool = meld [difftool] prompt = false [difftool "meld"] path = C:Program Files (x86)Meldmeldmeld.exe (Meld 설치 경로) 내용 추가 후 ESC → :wq → 엔터 입력하여 추가된 내용 저장 Author : MDLicht 56
  • 57. 1. Meld 설치(5) - mergetool 실행 • Merge 시 충돌이 발생했을 경우, git mergetool 명령어를 이용하여 meld 실행 가능 • 현재 상황(가운데)를 중심으로 로컬저장소(왼쪽), 원격저장소(오른쪽)의 내용을 참고 및 적용하여 병합 가능 • 화살표 위에 마우스 포인터를 두고 Ctrl 입력 시 추가, Shift 입력 시 삭제 가능 • 수정된 사항을 저장한 후 창 종료 시 다음 충돌된 사항을 표시 Author : MDLicht 57
  • 58. 1. Meld 설치(6) - difftool 실행 • 변경사항을 확인하고 싶을 경우 git difftool [commit id | 파일명] 을 입력하여 difftool 실행 • git difftool 만 입력할 경우 현재 변경된 모든 사항을 확인 가능 Author : MDLicht 58
  • 60. 1. 참고자료 Learning Git • https://learngitbranching.js.org/ • http://learnbranch.urigit.com/ Git Documentation • https://git-scm.com/doc Git Book • https://mylko72.gitbooks.io/git/content/ Git Flow • https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/ Git Guide • http://rogerdudler.github.io/git-guide/index.ko.html Git vs SVN • https://www.slideshare.net/einsub/svn-git-17386752 Author : MDLicht 60