SlideShare ist ein Scribd-Unternehmen logo
1 von 12
1
2
3
4
버전 : 의미있는 변화들
스냅샷 : Git의 데이터
커밋 : 버전을 생성
5
6
CommitedStagedModified
수정된 파일들 중에 버전에 추가할 파일 선택
7
8
$Git add : 파일 추적
$Git add : 수정한 파일을 Staging area에
추가
9
10
1. Discard
-> commit 전에 수정된 사항을 되돌리는 기능
2. reset
-> commit 후에 수정된 사항을 되돌리는 기능
-> Staging Area와 Woking directory
사이를 넘나드는 방법
1) Hard 모드
2) Mixed 모드
11
12

Weitere ähnliche Inhalte

Andere mochten auch

Open course 소개
Open course 소개Open course 소개
Open course 소개Kim Byoungsu
 
Estrategia de la gestión de medios
Estrategia de la gestión de mediosEstrategia de la gestión de medios
Estrategia de la gestión de mediosValentinaM16
 
My daily routine
My daily routineMy daily routine
My daily routinenorapuig
 
Qu'est-ce que c'est?
Qu'est-ce que c'est?Qu'est-ce que c'est?
Qu'est-ce que c'est?Yves Esle
 
Winning With Java at Market Open
Winning With Java at Market OpenWinning With Java at Market Open
Winning With Java at Market OpenAzul Systems, Inc.
 
JVM Language Summit: Object layout workshop
JVM Language Summit: Object layout workshopJVM Language Summit: Object layout workshop
JVM Language Summit: Object layout workshopAzul Systems, Inc.
 
Internet Governance by Its History (1966-2000)
Internet Governance by Its History (1966-2000)Internet Governance by Its History (1966-2000)
Internet Governance by Its History (1966-2000)Jeremy Pesner
 

Andere mochten auch (11)

Open course 소개
Open course 소개Open course 소개
Open course 소개
 
Estrategia de la gestión de medios
Estrategia de la gestión de mediosEstrategia de la gestión de medios
Estrategia de la gestión de medios
 
Games and Metaphor
Games and MetaphorGames and Metaphor
Games and Metaphor
 
SPACE SHUTTLE & ITS TPS
SPACE SHUTTLE  & ITS TPSSPACE SHUTTLE  & ITS TPS
SPACE SHUTTLE & ITS TPS
 
CURRICULUM VITAE4eng
CURRICULUM VITAE4engCURRICULUM VITAE4eng
CURRICULUM VITAE4eng
 
My daily routine
My daily routineMy daily routine
My daily routine
 
Qu'est-ce que c'est?
Qu'est-ce que c'est?Qu'est-ce que c'est?
Qu'est-ce que c'est?
 
Winning With Java at Market Open
Winning With Java at Market OpenWinning With Java at Market Open
Winning With Java at Market Open
 
JVM Language Summit: Object layout workshop
JVM Language Summit: Object layout workshopJVM Language Summit: Object layout workshop
JVM Language Summit: Object layout workshop
 
Business plan iv
Business plan ivBusiness plan iv
Business plan iv
 
Internet Governance by Its History (1966-2000)
Internet Governance by Its History (1966-2000)Internet Governance by Its History (1966-2000)
Internet Governance by Its History (1966-2000)
 

Mehr von Kim Byoungsu

Android tech note(beginner)[lesson 1]
Android tech note(beginner)[lesson 1]Android tech note(beginner)[lesson 1]
Android tech note(beginner)[lesson 1]Kim Byoungsu
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기Kim Byoungsu
 
Git 들여다보기(1)
Git 들여다보기(1)Git 들여다보기(1)
Git 들여다보기(1)Kim Byoungsu
 
Git란 무엇인가?
Git란 무엇인가?Git란 무엇인가?
Git란 무엇인가?Kim Byoungsu
 

Mehr von Kim Byoungsu (6)

Android tech note(beginner)[lesson 1]
Android tech note(beginner)[lesson 1]Android tech note(beginner)[lesson 1]
Android tech note(beginner)[lesson 1]
 
Git Branch
Git BranchGit Branch
Git Branch
 
Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
 
Git의 기초(3)
Git의 기초(3)Git의 기초(3)
Git의 기초(3)
 
Git 들여다보기(1)
Git 들여다보기(1)Git 들여다보기(1)
Git 들여다보기(1)
 
Git란 무엇인가?
Git란 무엇인가?Git란 무엇인가?
Git란 무엇인가?
 

Git의 기초

Hinweis der Redaktion

  1. 먼저 버전관리 시스템은 의미있는 변화를 저장한 것이라고 볼 수 있습니다. 그 중에서 Git의 의미있는 변화를 저장한 데이터를 스냅샷이라고 부릅니다. Git은 커밋하거나 프로젝트의 상태를 저장할 때마다 파일이 존재하는 그 순간을 중요하게 여깁니다. 여기서 커밋은 하나의 버전을 생성하는 행위라고 보시면 됩니다. 그러므로 Git은 시간순으로 프로젝트의 스냅샷을 저장하기 때문에 파일이 달라지지 않으면 성능을 위해 파일을 저장하지 않는 점이 기존의 다른 VCS들과 구분되는 특징이라고 보실수 있습니다.
  2. Git은 파일을 Committed, Modified, Staged 이 3가지 상태로 관리하게 됩니다. 먼저 working directory는 파일들을 수정한 목록들을 가지고 있는 곳입니다. 지금 작업하는 디스크에서 그 디렉토리에 압축된 데이터베이스에서 파일을 가져와서 워킹 디렉토리를 만드는것입니다. 그래서 여기는 Modified 상태는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다. 파일들을 수정했지만, 아직 Staging Area에 추가하지 않았으면 Modified 상태라고 합니다. 다음으로 Staging Area는 파일을 Stage해서 커밋할 스냅샷을 만드는 곳이며, 곧 commit할 file에 대한 정보를 목록에 저장하는 장소입니다. Staging Area는 Git 디렉토리에 있습니다. 여기서 Staged 상태는 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미하며, 파일을 수정하고 Staging Area에 추가했다면 Staged 상태입니다. 마지막으로 Git directory인 저장소는 지금 작업하는 디스크이며, 버전들이 저장되어있는 공간입니다. 여기서 상태는 Committed인데 이는 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미합니다. 즉, 저장소에 버전들이 저장되었다는 의미하며, Git 디렉토리에 있는 파일들은 Committed 상태라고 보시면 됩니다.
  3. 워킹 디렉터리에 있는 파일은 다음과 같이 구분되는데 먼저 tracked 속성(관리대상임)과 untracked 속성(관리대상이 아님)으로 나눌 수가 있습니다.   untracked 속성에서 add 명령어를 사용하면 tracked 속성(관리대상임)으로 바뀌게 되고 tracked 속성(관리대상임)에는unmodified 상태(수정하지 않음), modified 상태(수정함), staged 상태(커밋되기 직전 상태, 커밋되면 저장소에 기록됨)으로 이루어져 있습니다. 버전이 만들어지는 과정은 마지막 커밋 이후 어떤 tracked 파일이 수정되면, git은 즉시 그 파일을 Modified 상태로 인식하게 됩니다. 그리고 이 파일을 add 명령어를 한 번더 이용하면 Staged 상태로 바꾸며, Staged 상태인 파일을 커밋하면 스냅샷이 하나의 버전으로 만들어지게됩니다. git 은 이 프로세스를 반복한다고 생각하시면 됩니다. 만약에
  4. commit 전에 수정된 사항(버전에 저장 X)을 되돌리는 기능 => discard 수정 이전의 파일로 덮어썼기 때문에 수정했던 내용은 전부 사라진다. commit 후에 수정된 사항(버전에 저장 O)을 되돌리는 기능 => reset - hard 모드 : 선택한 버전 이후의 버전들은 모두 삭제되고, 아직 커밋하지 않은 목록(working directory) 뿐만 아니라 staging area에 저장된 목록까지 삭제 => 선택한 버전이 최신버전이 됨(저장한 버전뿐아니라 작업하고 있던 내용까지 모두 삭제) - mixed 모드 : 선택한 버전 이후의 버전들은 모두 삭제되고, 아직 커밋하지 않은 목록(working directory)들의 상태를 유지하고 staging area에 저장된 목록은 삭제