이전글 2023.06.29 - [본업/etc.] - [Git] Git이란? - #2 Git의 주요 특징 Git의 객체 https://git-scm.com/book/en/v2/Git-Internals-Git-Objects Git - Git Objects You will get a different hash value because of different creation time and author data. Moreover, while in principle any commit object can be reproduced precisely given that data, historical details of this book’s construction mean that the printed commi gi..
이전글 2023.06.26 - [본업/etc.] - [Git] Git이란? - #1 일단 git book의 문서를 보고 작성한 내용인데 사실상 번역하고 요약한 정도이니 빠르게 읽고 넘어가도 된다. '차이'가 아닌 '스냅샷' 기존의 VCS들은 위 그림과 같이 시간순으로 연대기적으로 파일들의 집합을 관리하며 이를 일반적으로 '델타 기반 버전 관리 시스템(Delta-based VCS)'이라고 한다. hot)으로 취급한 즉, 현재의 프로젝트 상태를 커밋하거나 저장할 때마다 Git은 그 순간에 모든 파일 시스템이 어떻게 생겼는지를 사진으로 찍어 해당 스냅샷의 참조로 저장한다. 대부분의 작업을 로컬 영역에서 진행 가능 Git은 DVCS이기 때문에 개발자 본인의 로컬 디스크에 프로젝트의 모든 이력이 존재한다. 따라서..
이전글 2023.06.22 - [본업/etc.] - [Git] 버전 관리 시스템의 종류 Git이란? https://git-scm.com/book/en/v2 Git - Book git-scm.com 2005년 Linux의 아버지인 리누스 토발즈가 리눅스 커널 프로젝트를 위해 개발한 분산식 버전 관리 시스템(DVSC; Distributed Version Control System)이다. 현재 개인부터 빅 테크 기업까지 다양한 규모와 다양한 분야에서 사용되는 버전 관리 시스템이다. Git의 자세한 탄생 배경이나 역사는 여기를 참고. Git의 설계 목표 이전 포스팅들에서 설명했듯이, 모든 VCS는 고유한 탄생 배경, 한계점을 가지고 있다. 특히 탄생 배경은 이전에 사용하던 시스템의 한계를 극복하기 위함인데 Gi..
이전글 2023.06.19 - [본업/etc.] - [Git] 버전 관리 시스템(Version Control System)의 역사? 로컬 버전 관리(Local Version Control) 시스템 가장 기본적인 형태의 버전 관리 시스템이다. 개발자가 하나의 로컬 컴퓨터에서 작업을 수행, 간단한 데이터베이스 등을 사용해 버전을 저장하고 관리한다. 데이터베이스에 파일의 변경 사항이 저장되어 있기 때문에 언제든지 특정 버전으로 복원하고 변경 내역을 확인, 비교할 수 있다. 다만, 이러한 환경은 다수의 개발자가 동시에 협업을 하기 힘들고, 모든 파일, 버전과 같은 데이터가 하나의 로컬 컴퓨터에 저장되기 때문에 데이터 손실의 위험이 매우 크다. 대표적인 예로는 RCS, SCCS 등의 시스템이 있다. 중앙 집중식 ..
이전 글 2023.06.15 - [본업/etc.] - [Git] 버전 관리(Version Control)란? 그리고 목표는? VCS란? 버전 관리 시스템(VCS; Version Control System)의 줄임말로 파일 변경 사항을 시간에 따라 기록하고, 필요할 때 특정 버전을 다시 호출할 수 있는 시스템을 말한다. RCS(Revision Control System)이라고도 한다. 요즘은 주로 소프트웨어의 소스 코드의 변경 사항을 추적하며, 파일이 언제, 누가, 어떻게 변경되었는지를 기록한다. VCS를 사용하면 개발자의 실수를 쉽게 복구할 수 있고 여러 사람이 협업하는 경우 각자의 작업을 병합하는데 큰 도움이 된다. 가장 널리 사용되는 VCS에는 Git, SVN, Mercurial 등이 존재한다. 버전..
버전 관리란? '버전 관리(Version Control)'는 파일 변경 사항을 시간에 따라 기록하고, 필요할 때 특정 버전을 다시 호출할 수 있는 시스템을 일컫는다. 간단히 설명하자면 동일한 정보에 대해 여러 버전을 정의하고 관리하는 것을 의미한다. 특히 소프트웨어 엔지니어링 분야에서는 일반적으로 소프트웨어의 소스 코드의 변경 사항을 추적한 내역을 '버전 관리'라고 칭한다. 하지만 이는 주로 과거의 관습이고, 최근에는 소프트웨어 구성을 이루는 소스 코드 뿐 아니라 각종 환경, 설정 파일등을 모두 포함하는 소프트웨어 구성 관리(SCM, S/W CM; Software Configuration Management)라는 확장된 개념이 등장되었다. 이를 주로 형상 관리라고도 한다. - 관련 용어 정리 - 버전 관..
Scope 나도 git을 통해 협업은 해본적이 없고, 그저 업무 중 연구 소장님께 코드 리뷰를 부탁드릴 때 '링크'를 드리면 편리하기 때문에 사용하기 시작했었다. 그 외 대부분은 개인 프로젝트를 관리하는 정도로만 사용하였고, 아주 가~끔 GitHub에 private로 올릴 필요가 생길때가 있다. 이럴 때 "어, 지금 로컬 저장소를 원격 저장소에 push할 때 어떻게 세팅했었더라?" 하게 된다. 딱 이 시나리오에 맞는 범위만 다룰 것이다. 0. 준비물 1. git 설치 : 당연히 본인 컴퓨터에 git이 필수적으로 설치되어 있어야 한다. (설치법은 간단하기 때문에 알아서 구글링으로 설치) 2. IDE : 옵션 사항이다. 사실 터미널 창만 있어도 사용 가능한데, CLI가 익숙하지 않은 사람이 있을 수 있다. ..