Git Git에 대한 단상

황제낙엽 2016.05.12 16:45 조회 수 : 24

sitelink1 http://blog.naver.com/slaior/220103788268 
sitelink2  
sitelink3  

버전 관리 시스템이란?

- 파일의 상태를 주시하고 있다가 파일이 변겅된 경우 해당 변경 사항에 대한 태그를 표시한 후 사용자가 원하는 경우 표시해둔 단계로 복귀할 수 있는 시스템

 

VCS의 사용이유

- 여러 명이 공동으로 개발할 경우 소스코드의 관리가 어려움

- merging에 시간과 노력이 많이듬

- 위의 내용을 줄여서 생산성을 향상 시키기 위해 VCS를 사용함

- 의도치 않았던 상황에 들어서거나 문서의 내용 중 일부를 이전 상태로 되돌려야하는 경우 안전장치 역활을 함

- 데이터 손실 걱정 없이 이전 단계 어디로든 이동할 수 있음

 

버전 관리시스템의 종류

- 로컬 버전관리시스템

- 중앙 집중형 버전관리시스템

- 분산 버전 관리시스템

 

분산 버전 관리시스템의 장점

- 서버와 지속적으로 연결돼 있는 상태를 유지하지 않더라도 로컬에 변경 사항을 기록함

- 서버에 저장되어 있는 파일들에 의존적이지 않음

- 협업 시 각기 다른 기기에 저장된 이력에 의존적이지 않음

- 작업을 재사용할 수 있음

 

Git의 장점

- 원자성: 호출과 응답 사이에 발생하는 단일 인스턴트로 작업하는 속성

- 성능: 깃은 로컬에서 파일을 다루기 때문에 성능이 뛰어남. 타 버전 관리시스템의 경우 각각의 파일들에 대한 차이점만 기록하지만 Git의 경우 차이점을 저장하는 대신에 파일 집합들에 대한 스탭샷을 만들어서 다룸. 따라서 이전 작업으로 복구할 때도 스냅샷 기반으로 한번에 옮겨갈 수 있음. 복사 파일을 만드는 건 아니고 해당 파일에 대한 변경내용이 없다면 참조점만 만들고 변경사항이 있는 파일 내용만 저장함. 스냅샷으로 복구할때는 참조가 걸려는 있는 파일을 기준으로 스냅샷 기준으로 돌아감. 이런 특성을 이용해 버전 이력을 가능한 작은 공간을 이용해서 관리가 가능함.

- 보안성: Git은 모든 데이터를 저장하기에 앞서 SHA-1 해시를 이용해 체크섬을 만들어 데이터를 관리함. 이후에는 체크섬을 이용해 참조함. Git 없이는 어떤 파일이나 디렉토리의 콘텐츠도 변경할 수 없음.

- 타 버전 관리시스템에 비해서 분기(branching)와 병합(merging)이 훨씬 쉽기 때문임

 

고려점

- 깃을 잘 사용하기 위해서는 개발할 때 기능을 최소단위로 쪼개고 그 단위 기능별로 분기를 생성하고 단위 기능을 병합하는 것이 좋음

 

기타

- 리눅스 커널을 만든 리눅스 토발즈가 Git 프로젝트의 창시자임

 

 

Git을 이용해 버전 관리할 때 작업공간(worksapce)에서 필요로 하는 개념

- 초기화 절차: 초기화는 디렉토리를 지정하는 절차임.

- 저장소에 파일 추가

- 추가 파일 커밋

- 체크아웃

- 리셋

번호 제목 글쓴이 날짜 조회 수
35 [Review] gitflow, 쉬운 git branch 관리 By 개발왕 김코딩 on 2월 11, 2014 in 개발 이야기 file 황제낙엽 2016.05.18 57
34 [TortoiseGit] 윈도우에서 깃(Git)을 좀더 편리하게 사용하기 file 황제낙엽 2016.05.17 103
33 윈도우에서 깃(git) 서버 설치하기 file 황제낙엽 2016.05.17 404
32 [TortoiseGit] 깃(Git) 브랜치 머지(Merge)하기 file 황제낙엽 2016.05.17 157
31 [TortoiseGit] 깃(Git)으로 브랜치/태그 만들기 file 황제낙엽 2016.05.17 142
30 Pro Git Book 다운로드 file 황제낙엽 2016.05.17 123
29 Git, 정말 필요한가 file 황제낙엽 2016.05.12 68
28 GIT/ 프로젝트, 폴더, 파일 관리 프로그램 장점 및 추천 (TortoiseGit) file 황제낙엽 2016.05.12 131
27 Git 의 기능 및 장점 황제낙엽 2016.05.12 56
26 Git 의 개념과 기초 사용법 file 황제낙엽 2016.05.12 72
25 Git 과 svn 비교 - svn 대비 git의 차별점 file 황제낙엽 2016.05.12 107
» Git에 대한 단상 황제낙엽 2016.05.12 24
23 Git 의 장점과 단점 황제낙엽 2016.05.12 191
22 Git 의 기능 및 장점 황제낙엽 2016.05.12 23
21 TortoiseSVN 잠그기 (Get lock) file 황제낙엽 2016.02.04 65
20 VisualSVN Server 와 TortoiseSVN 관련 링크 모음 file 황제낙엽 2016.02.03 115
19 Win7 64bit에서 subclipse 1.6.x 사용 시 javahl 버전 에러 황제낙엽 2013.03.02 44
18 Versioning 에 대한 참고 사항 황제낙엽 2012.08.28 62
17 SVN 사용시 revision 번호로 버전관리하는 방법 황제낙엽 2012.08.28 586
16 How do I get JavaHL? 황제낙엽 2010.09.28 51