Git 기본 | git init
git init 명령
git init은 Git 저장소를 새로 만드는 명령이다. 이 명령은 버전 관리를하지 않은 기존 프로젝트를 Git 저장소로 변환하거나 새로운 빈 저장소를 생성하고 초기화하는 경우에 사용한다. 이 명령을 제외한 다른 명령은 거의 모든 초기화 된 저장소 이외에는 적용 할 수 없기 때문에이 명령은 새 프로젝트를 시작할 때 보통 처음 실행하는 명령이다.
git init 명령을 실행하면 저장소에 관련된 모든 메타 데이터를 갖는 .git 하위 디렉터리가 프로젝트의 루트에 생성된다. 이 .git 디렉터리 생성을 제외하고 기존 프로젝트에 아무런 변화가 없다 (SVN과는 달리 Git은 각 하위 디렉터리에 .git 폴더가 생성되지 않는다).
사용법
git init
현재 디렉터리를 Git 저장소로 변환한다. 이 명령을 실행하면 현재 디렉터리에 .git 폴더가 생성되고 프로젝트의 버전 관리를 시작할 수 있다.
git init <directory>
지정한 디렉터리에 빈 Git 저장소를 만든다. 이 명령을 실행하면 .git 하위 디렉터리를 포함된 <directory>라는 이름으로 새 폴더가 생성된다.
git init --bare <directory>
작업 디렉터리를 없는 공간에 Git 저장소를 생성하고 초기화한다. 공유 저장소는 반드시 –bare 플래그를 사용하여 작성해야 한다 (아래의 보충 설명 참조). –bare 플래그를 지정하여 만든 저장소 디렉터리명에 무조건 .git를 추가한다. 예를 들어, my-project라는 이름의 저장소 베어 버전은 my-project.git라는 이름의 폴더에 저장한다.
보충 설명
SVN과 비교하면 git init는 새 버전 관리 프로젝트를 만들기위한 매우 간편한 방법을 제공하는 명령이다. Git은 수동으로 저장소 폴더 만들기, 파일 임포트, 작업 복사인 체크 아웃 등은 하지 않아도 된다. 프로젝트 폴더에 git init을 실행하기 만하면 완전한 기능을 가진 Git 저장소를 만들 수 있다.
다만, 대부분의 프로젝트에서 git init 명령은 중앙 저장소를 만들 때 한 번만 사용될 것이며, 각각의 개발자가 로컬 저장소 (중앙 저장소의 작업 복사본)을 만들 때 git init을 사용하지는 않는다. 개발자는 일반적으로 git clone 명령을 사용하여 기존 저장소의 복사본을 로컬 머신에 만든다.
베어 저장소(bare repository)
–bare 플래그를 지정하면 작업 디렉터리가 없는 저장소가 생성되고 그 저장소에서 파일을 편집하거나 변경을 적용 할 수 없다. 베어 저장소가 아닌 경우에 브랜치 푸시하면, 변경 사항이 잘못 기록을 될 수 있기에 중앙 저장소는 반듯이 베어 저장소로 만들어야 한다. –bare의 지정은 그 저장소를 개발 환경으로 서가 아닌 저장용 공간으로 인식시키는 방법이라고 생각하면 된다. 즉, 실질적으로 모든 Git 작업 플로우에서 중앙 저장소는 베어 저장소이며, 개발자의 로컬 저장소는 베어 저장소가 아니다.
Git 튜토리얼 : 베어 저장소
사용 예
중앙 저장소의 작업 복사본을 만들려면 git clone 명령이 더 편리하기 때문에 git init 명령어의 일반적인 사용 사례는 최초 중앙 저장소에 저장고를 만들때만 주로 사용한다 :
ssh @
cd path / above / repo
git init --bare my-project.git
먼저 SSH 통신을 통해 중앙 저장소를 만들려는 서버에 로그인한다.
다음 프로젝트를 저장할 디렉터리로 이동한다.
마지막으로, –bare 플래그를 지정하여 중앙 저장소를 만든다.
그럼, 개발자는 clone my-project.git 명령을 사용하여 자신의 개발 장비에 작업 복사본을 만든다.