작업을 위한 repository가 아닌 서버의 역할을 하기 위한 repository에 대해서 한동안 알아보도록 하겠다.

우선 가장 첫번째로 그냥 바로 사용할 수 있는 Local Protocol 이다!


1. git init --bare

 

$ mkdir  BareRepo.git
$ cd BareRepo.git/
$ git init --bare

Bare repository를 생성하는 것에 대해서 작성한 다음 글을 참조하기 바란다.
   - http://whatwant.tistory.com/328

전에 이야기한 적이 있는 것 같은데, 다시 한 번 말하면
Bare repository는 일반적으로 디렉토리명 꼬리에 '.git'을 붙이곤 한다.


그리고 생성 후에 원활한 테스트를 위해서는 파일 하나는 넣어놓는 것이 좋다.
빈 저장소(empty repository)인 경우에는 테스트할 때 이상 증세를 보일 수도 있다.

예를 들어서 Redmine에서 저장소 셋팅을 제대로 하여도 empty repository인 경우에는
마치 에러가 난 것과 같은 화면을 보여준다.



2. clone


$ cd clone /srv/repository/BareRepo.git
$ cd BareRepo/

Local Protocol을 사용하는 경우에는 repository 주소를 그냥 절대경로로 디렉토리를 적어주면 된다.

   - git clone [directory]

물론 해당 디렉토리에 대한 읽기 권한이 있어야 한다.

repository의 디렉토리명에 ".git"이 붙어 있음에도 생성된 repository를 보면
이름에서 ".git"이 제외되고 생성된 것을 볼 수 있을 것이다.


3. Usage

전에 간단히 언급은 했지만,
Local Protocol은 NFS로 공유 파일 시스템을 셋팅하여서 팀원들끼리 같이 사용하는 형태로 종종 사용은 된다.

권한 문제는 파일시스템의 계정 권한을 그대로 따른다.
물론 push 역시 계정 권한에 따라 허용된다.

혼자서 git을 구성해서 사용할 경우에는 간단히 Local Protocol을 사용하면 된다.

하지만, 일반적으로 사용할 경우 별 문제는 없지만,
만약 원격지에서 접근을 해야하는 경우에는 치명적으로 난감한 상황에 빠지게 된다.

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Git Server - Remote Connect  (0) 2012.02.25
Git Server - SSH  (2) 2012.02.23
Protocol - Git Server  (0) 2012.02.20
Add last commit - git commit --amend  (0) 2012.02.16
Log - gitk  (0) 2012.02.15

+ Recent posts