목록ETC/Git (4)
elevne's Study Note
한 프로젝트를 진행할 때 프로젝트에 참여하는 한 개발자는 새로운 기능을 개발, 다른 개발자는 버그를 수정할 수 있다. 동일한 프로젝트를 기반으로 서로 다른 버전의 코드를 만들어낼 수 있다는 뜻이다. 이러한 작업을 위해 Branch 라는 기능이 사용된다. Branch 란 프로젝트 기준 코드인 master 브랜치로부터 독립적인 작업 공간을 만들어주는 기능이다. 여러 개발자가 서로 다른 버전의 코드를 만들 때 서로의 작업에 영향을 주고받지 않기 위해 필요하다. 지금까지 사용한 master 브랜치는 깃에서 기본적으로 제공하는 브랜치이기에 별도로 생성하는 과정 없이도 사용할 수 있었다. master 브랜치는 가장 최근 생성된 커밋을 바라본다. 또, 이전 시간에 알아본 것처럼 HEAD 포인터는 현재 작업하는 곳(브..
Git 으로 관리하는 파일 상태를 이해하기 위해서는 Working Tree (작업트리) 의 개념을 알아야 한다. Working Tree 란 Git 이 관리하는 파일과 관리하지 않는 파일을 구분하고, 관리하는 파일들의 상태를 구분 짓는 영역이다. (Working Tree 에 대한 내용 또한 .git 폴더 내에 저장된다) Working Tree 는 크게 3 가지 영역으로 나뉜다. 첫 번째로는 Working Directory 로, 실제 작업 중인 파일들이 존재하는 영역이다. 두 번째로 Staging Area 가 있는데, 이는 Working Directory 에서 작업 중인 파일 중 Git 이 추적하는 파일들을 식별하는 영역이다. (실제로는 .git 폴더 내의 index 파일에서 관리하는 파일들을 식별한다) 마..
Git/GitHub 를 사용할 때, 소스코드는 크게 두 가지 흐름 중 하나로 움직인다. 지역저장소에서 깃허브, 원격저장소로 흐르거나 그 반대이다. 우선 지역저장소를만들고 사용하는 방법에 대해 알아본다. git init 명령을 통해 Git 지역 저장소를 설정할 수 있다. 원하는 디렉토리로 들어가 터미널에서 해당 명령어를 실행하면, .git 폴더를 숨겨진 폴더로 생성한다. (폴더명 앞에 점이 붙어있으면 숨겨진 폴더이다) .git 폴더 내의 내용은 ls -l 명령어로 확인해볼 수 있다. Git 지역저장소에서 관리하는 파일, 브랜치, 설정정보 등이 담겨있다. .git 폴더 내의 파일 및 폴더를 사람이 직접 수정할 일은 거의 없다고 하며, 이는 Git 명령어를 이용하여 작업할 때 Git 에 의해 자동으로 관리된다..
Git 은 분산형 버전 관리 시스템이며 GitHub 은 Git 프로젝트 호스팅 서비스이다. 분산형 버전 관리 시스템에서 서버는 각 개발자 (클라이언트) 의 소스 코드와 버전 이력을 동기화해준다. 개발자는 최신 버전의 소스 뿐만 아니라 모든 버전 이력을 얻을 수 있는 것이다. 어플리케이션들은 배포 전후로 계속 업데이트된다. 지속적으로 일어나는 업데이트를 체계적으로 관리할 수 있게끔 해주는 버전 관리 서비스가 필요하다. 또 한 프로젝트에서 여러 개발자가 동시에 코드를 수정하고 덮어쓰면 충돌이 발생하기도 하는데, 이러한 상황을 관리해주는 서비스도 필요하다. 위와 같은 이유로 Git/GitHub 가 사용된다. Git 을 이용하면 이력 기록 및 추적이 상세하게 가능하며 소스 코드를 분산 저장할 수 있다. 또 Gi..