Git 에 대해서 알아보게 되면 가장 많이 듣게 되는 말이 "분산 개발"이라는 것이다.
이를 가능하게 하는 것이 바로, 서버와 클라이언트가 똑같은 데이터를 갖게 해주는 방법이다.


그런데, Git 에서 생성할 수 있는 repository는 앞에서 잠깐 설명한바와 같이 두 가지가 있다.

   - bare repository
   - work(non-bare) repository

두 가지 모두 같은 데이터를 갖고 있지만, 둘은 분명 다른 목적을 가지고 있다.



bare repository

서버의 역할을 위해서 만들어지는 repository이다.
repository를 bare로 만들게 되면 그 안에서는 수정 작업 등을 할 수 없다.


work (non-bare) repository

수정 등의 실제 업무를 위해서 만들어지는 repository이다.



work(non-bare) repository 생성하는 것은 앞에서 살펴보았고,
여기에서는 bare repository를 생성하는 것을 살펴보도록 하겠다.


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


일단, 이렇게 bare repository를 생성은 했는데,
이것을 어떻게 활용하여야 하는지에 대해서는 보다 더 많은 것을 알아보아야 한다.


즉, bare repository는 서버로 사용하겠다는 것인데,
그러기 위해서는 다음에 대한 것들을 더 알아보아야 한다.

   - 프로토콜
   - 계정 관리 (권한)


다음에 bare repository를 이용해서 작업을 하는 것에 대해서 알아보도록 하겠다.

반응형

git의 기능들에 대해서 설명해 나가기 위해서 avi 동영상 파일의 parser를 만들어 나가도록 하겠다.
언어는 뭘로 할까 하다가, python을 가지고 한 번 해보도록 하겠다.


1. git init

      - 일단은 리퍼지토리를 하나 생성하자 (= 프로젝트를 하나 생성하자)


  $ mkdir aviParser
  $ cd aviParser
  $ git init


2. create file

      - git을 이용하여 관리할 파일을 만들자


  $ nano ./aviParser.py
  $ git status

      - 'aviParser.py'라는 파일을 생성한 리퍼지토리의 디렉토리에서 생성하자
      - 'git status'라는 명령어를 쓰면, 현재 리퍼지토리의 상태에 대해서 확인할 수 있다
      - 위의 예를 보면 'Untracked files'에 'aviParser.py' 파일이 있다고 알려준다
      - 거기에다가 친절하게 어떻게 해야하는지까지도 알려준다. (use "git add")


3. git add

      - 새로 만든 file을 git에 등록을 하자


  $ git add ./aviParser.py

      - 앞에서 'git status'로 확인해본 결과 'Untracked files'에 'aviParser.py'이 있다는 것을 확인했다.
      - 'git add ./aviParser.py'를 통해 해당 파일을 등록하고,
      - 다시 'git status'로 상태를 확인해 보면, 'new file'에 해당 파일이 있는 것을 볼 수 있다.


4. git commit

      - 최종적으로 git에게 확정을 지어주기 위해서는 'commit'을 해주어야 한다.


  $ git commit -m 'initial project!'

      - 앞에서 'git status'를 통해 확인했듯이 'git add'를 한 후 상태는 'new file'로 등록이 되어 있다.
      - 최종적으로 git에게 앞에서 한 명령(여기에서는 add)을 확정짓기 위해서는 'commit'을 해주면 된다.
      - 'commit'을 하면서 동시에 'comment'를 같이 명시해줄 수도 있다.
      - 'commit'을 하고 난 후 'git status'를 하면 아무 것도 할 것이 없다고 나온다.



지금까지 새로 프로젝트를 생성해서 신규로 파일을 생성하고,
그 파일을 git에 등록을 하는 과정을 살펴보았다.

이 과정을 이미지化 해보면,
"File Status Lifecycle in GIT"에서 봤던 그림과는 조금 다른 그림을 아래와 같이 그릴 수 있다.


반응형

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

Compare - modify (git diff, git log) 1/2  (0) 2012.01.17
Tracking file - ignoring  (0) 2012.01.15
File Status Lifecycle in GIT  (1) 2011.11.22
Repository 생성하기  (1) 2011.11.20
저장소 - Repository  (0) 2011.11.17

내 컴퓨터에 Repository를 만드는 방법은 "Initializing"하는 방법과 "Cloning"하는 방법의 2가지가 있다.

1. Initializing
     - 새롭게 비어있는 저장소를 생성하는 경우이다.


     ① 저장소로 사용할 디렉토리를 하나 생성한다.
     ② 해당 디렉토리로 경로를 변경한다.
     ③ "git init"을 실행한다.

     - 이렇게 생성된 Repository는 work (non-bare) 타입의 저장소이다.
     - bare 타입과 work (non-bare) 타입의 차이는 다음 기회에 설명을 다시 하겠다.


2. Cloning
     - 기존에 이미 만들어진 Repository를 복사해서 나의 Repository를 만드는 경우이다.


     ① 저장소를 만들고자 하는 상위 디렉토리로 이동한다.
     ② "git clone"을 실행한다.

     - 마찬가지로 이렇게 만들어진 Repository는 work (non-bare) 타입의 저장소이다.


'git init'과 'git clone' 이 두가지만 알면 Git Repository를 생성할 수 있다.
반응형

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

Tracking file - add, status, commit  (0) 2011.11.30
File Status Lifecycle in GIT  (1) 2011.11.22
저장소 - Repository  (0) 2011.11.17
Git에게 주인님 알려주기 (in Windows)  (0) 2011.11.14
Git에게 주인님 알려주기 (in Ubuntu)  (0) 2011.10.30

+ Recent posts