Dev/Github&Git

Git 기초 부터 push, pull ,branch,etc...

OK-가자 2021. 9. 7. 11:05

이클립스와 git 연동하는 법은 이전 글에 있다.

https://ok-vamos.tistory.com/4

 

이클립스 Github 연동하기

 

ok-vamos.tistory.com

 

오늘은 Git이 뭔지 어떻게 사용하는지 복습해보자

 

깃은

버전관리 (형상관리 프로그램)이다.

버전관리?

버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시 점의 버전을 다시 꺼내올 수 있는 시스템.

 버전 관리 시스템의 종류

  - 로컬 버전 관리

  - 중앙집중식 버전 관리

  - 분산 버전 관리 시스템

 

 로컬 버전 관리 = 많은 사람은 버전을 관리하기 위해 디렉터리로 파일을 복사하는 방법

 중앙집중식 버전 관리

- CVS, Subversion, Perforce 같은 시 스템은 파일을 관리하는 서버가 별도 로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용(Checkout)한다.

- 치명적인 결점이 있다. 가장 대표적인 것이 중앙 서버가 한 시간 동안 다운되면 그 동안 아무도 다른 사람과 협업할 수 없고 사람들 이 하는 일을 백업할 방법도 없다. 그리고 중앙 데이터베이스가 있는 하 드디스크에 문제가 생기면 프로젝트 의 모든 history를 잃는다.

 분산 버전 관리 시스템

- Git, Mecurial, Bazaar, Darcs 같은 DVCS에서의 클라이언트는 단순히 파일의 마지막 스냅샷을 Checkout 하지 않는다. 그냥 저장소를 전부 복제한다. 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있다. 클라이언트 중에서 아 무거나 골라도 서버를 복원할 수 있다. 모든 Checkout은 모든 데이터를 가진 진정한 백업이다.

 

 


 

Git의 방식은 정보 취급 방식이다.

 

 정보 취급 방식

- Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다 루는 방법에 있다. 큰 틀에서 봤을 때 VCS 시스템 대부분은 관리하는 정보가 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar 등의 시스템은 각 파일의 변화를 시간 순으로 관리하면서 파일들의 집합을 관리한다.

- Git은 데이터를 파일 시스템 스냅샷으로 취급하고 크기가 아주 작다.

- Git은 Commit하거나 프로젝트의 상태를 저장할 때마다 파일이 달라지지 않았으면 Git은 성능을 위해서 파일을 새로 저장하지 않는다. 단지 이전 상태의 파일에 대한 링크만 저장한다.

 


자 이제 Git의 상태 관리 방법을 알아보자

 Git은 파일을 세 가지 상태로 관리

- Committed - 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미

- Modified - 수정한 파일을 아직 로컬 데이터베이스에 commit하지 않은 것을 의미.

- Staged - 현재 수정한 파일을 곧 commit할 것이라고 표시한 상태를 의미.

 

 Working Directory

- 프로젝트의 특정 버전을 Checkout 한 것.

- Git Directory는 지금 작업하는 디스크에 있고 그 Directory 안에 압축된 데이터베이스에서 파일을 가 져와서 Working Directory를 만든다.

 

 Staging Area

- Git Directory에 있으며, 단순한 파일이고 곧 commit 할 파일에 대한 정보를 저장. Index라고 불 리기도 함

- Git으로 하는 일

- Working Directory에서 파일을 수정

- Staging Area에 파일을 Stage 해서 commit 할 스냅 샷을 만든다.

- Staging Area에 있는 파일들을 commit해서 Git Directory 에 영구적인 스냅샷으로 저장

 

 Git Directory에 있는 파일들은 Committed 상태 이다. 파일을 수정하고 Staging Area에 추가했다 면 Staged이다. 그리고 Checkout 하고 나서 수 정했지만, 아직 Staging Area에 추가하지 않았으 면 Modified이다.


Git에 대한 설명은 여기까지 하고

 

연동하는거 이외의

.gitignore 설정하는법

commit

branch

merge

하는 법 알아보자

 

.gitignore 추가는 다양한 방식이 있는데

필자는 위의 방식을 쓴다.

 

commit 하는 법은

 

새로운 Branch생성과 이동

 

Merge (병합) 하는법

 

 

'Dev > Github&Git' 카테고리의 다른 글

이클립스 Github 연동하기  (0) 2021.09.06