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

git을 사용하기에 앞서서 미리 꼭 공부를 해야하는 부분이 있다.

Java를 사용하기에 앞서서 Object-Oriented를 공부해야하는 것처럼,
Git을 사용하기에 앞서서 git에서의 File Status Lifecycle을 공부해야 한다.


① untracked
      - git으로 관리하기 이전의 상태
      - git에게 앞으로는 관리하지 않도록 삭제한 상태

② unmodified
      - git에게 관리를 하도록 add를 하고 아무런 수정을 하지 않은 상태
      - git에게서 commit을 하여 내려 받은 후 수정을 하지 않은 상태

③ modified
      - 사용자가 수정을 한 상태

④ staged
      - git에게 변화된 내용을 등록한 상태


File Status Lifecycle는 위와 같이 구성되어 있지만,
File Status의 변화는 위와 같이 흘러가지는 않는다.

시나리오를 생각해보면,
① 개발자가 소스 파일을 하나 새로 생성을 하고
② git에 관리 대상으로 만든 후
③ 소스 수정을 하게 되면
④ 변경된 내용을 git에게 알려주면 된다.
② 필요한 경우 git에게서 파일을 불러올 수도 있다.
① 불필요하게 되면 git의 관리대상에서 삭제할 수도 있다.



git을 사용하기 위해서는 여기에서 설명한 File Status Lifecycle을 잘 이해해야 한다.

실제 git에서 이와같은 status를 어떻게 보여주는지에 대해서는 다음 글에서 확인해보자!

반응형

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

Tracking file - ignoring  (0) 2012.01.15
Tracking file - add, status, commit  (0) 2011.11.30
Repository 생성하기  (1) 2011.11.20
저장소 - Repository  (0) 2011.11.17
Git에게 주인님 알려주기 (in Windows)  (0) 2011.11.14

내 컴퓨터에 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

http://www.terms.co.kr/repository.htm
     - 데이터 집합체가 보관되고 조직적인 방식으로 유지되는 저장 장소

Git에서의 Repository는 Visual Studio 등에서 프로젝트와 비슷한 개념이다.

형상관리를 하려면 Repository를 생성하고,
그곳에 소스 코드를 넣고 히스토리를 기록하고 브랜치를 저장하면 된다.



이러한 Repository를 만드는 방법은 크게 2가지가 있다.

1. Initializing
     - 새로 Repository를 생성하는 방법

2. Cloning
     - 기존 Repository를 복제하는 방법



이런 Repository에는 2가지 타입이 있다.

1. Bare Repository
     - 순수한 의미에서의 Repository이다.
     - 형상관리 서버로 사용하기 위해서는 꼭 bare 타입이어야 한다.

2. Work Repository (non-bare repository)
     - 작업을 하기 위한 Repository이다.
     - 소스 코드 수정은 work repository에서만 할 수 있다.



Repository에 대한 간단한 소개는 이와 같고,
각각에 대해서는 앞으로 실제 사용 방법을 설명하면 이해가 될 것이다.

반응형

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

File Status Lifecycle in GIT  (1) 2011.11.22
Repository 생성하기  (1) 2011.11.20
Git에게 주인님 알려주기 (in Windows)  (0) 2011.11.14
Git에게 주인님 알려주기 (in Ubuntu)  (0) 2011.10.30
Install GIt (in Windows)  (0) 2011.10.24

Ubuntu와는 조금 다른 환경인 WIndows

Windows 환경의 Git에서 주인을 알려줘보자.


별도의 설명은 Ubuntu에서의 설명을 참조하면 된다.

$ git config --global user.name "이름"
$ git config --global user.email "이메일"
$ git config --global core.editor "에디터"
$ git config --global merge.tool "머지 도구"


참고로 내가 적용한 내용은 아래와 같다.


$ git config --list


Windows 환경이기에 신경을 써야하는 부분은 에디터와 머지 도구이다.


에디터의 경우는 간단하게 코멘트 등을 적어주는 용도이니,
그냥 notepad를 사용해도 무방할 것이다.

Window 창으로 작업하는 것이 번거로운 분은
'Git bash'에서 사용할 수 있는 'vi' 또는 'vim'을 사용해도 무방하다.


머지 도구의 경우는 오픈 소스 프로젝트로 개발 되고 있는
WinMerge를 사용하면 된다(물론 각자 사용하는 것이 있다면 그것으로^^).

http://winmerge.org/



Ubuntu에서 이러한 설정은 계정 디렉토리에 위치하고 있었는데,
Windows에서는 이러한 설정 값을 어디에 저장하고 있을까?

Windows XP의 경우 아래의 경로에 있다.
   - C:\Documents and Settings/계정/.gitconfig


이제는 Git도 주인님이 누구인지, 취향이 무엇인지 알 수 있을 것이다!
반응형

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

File Status Lifecycle in GIT  (1) 2011.11.22
Repository 생성하기  (1) 2011.11.20
저장소 - Repository  (0) 2011.11.17
Git에게 주인님 알려주기 (in Ubuntu)  (0) 2011.10.30
Install GIt (in Windows)  (0) 2011.10.24

Git 설치만 하고 그냥 바로 쓰면 될까?
당연히 대답은 No!!!

Git에게 주인이 누구인지 알려줘야만 한다.
그리고, 주인이 좋아하는 취향도...



일단, 주인이 누구인지 알려줘 보자!


$ git config --global user.name "이름"
$ git config --global user.email "이메일주소"


Git에게 주인님의 이름과 이메일 주소를 알려주는 것은 아주 중요하다.
Git에게 무슨 짓을 '누가'하는지 기록하기 위한 중요한 정보이기 때문이다.

버전 관리를 위한 도구에서 사용자를 구분하는 것은 가장 기본이다.

처음 입력할 때 제대로 잘 입력해야한다.
한 번 정한 주인님의 이름과 이메일 주소는 바꾸지 않아야 하기 때문이다.
변경을 하게 되면 나중에 통계 등의 작업을 할 때에 다른 사람으로 잡힌다.


만약 특정 프로젝트에서 다른 이름과 다른 이메일 주소를 사용하고 싶은 경우,
'--global' 옵션을 빼고 사용할 수도 있다.

'--global' 옵션을 사용하는 것은 기본적인 사항으로 설정을 하는 것이고,
사용하는 프로젝트마다 개별 설정을 할 수도 있는 것이다.



다음으로는 에디터를 설정하도록 하자.


$ git config --global core.editor 편집기

vi, vim, emacs 등의 에디터를 각자 취향에 맞게 설정하면 된다.
설정하지 않으면 시스템에 설정되어 있는 기본 에디터를 사용하게 된다.

commit 등을 하는 경우 메시지를 입력할 때
사용되는 에디터를 지정하는 것이다.



그 다음에는 '비교 도구(Diff Tool)'을 설정하면 된다.


$ git config --global merge.tool 비교도구

파일들의 변경 사항을 비교할 때에 사용하는 diff tool을 설정하는 것이다.
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, opendiff
등을 사용할 수 있다.

diff tool 중의 대부분은 X-Windows에서 사용된다.



지금까지 설정한 것들을 확인해보자.


$ git config --list

설정이 어떻게 되어있는지 확인할 수 있다.




그럼, 이렇게 알려준 주인님에 대한 사항을 어디에 기억 하는지 알아보자.


$ cat ~/.gitconfig

계정 디렉토리에 ".gitconfig"라는 파일에 해당 사항이 기록되어있다.




이렇게 주인의 이름과 취향을 알려주는 것은 별것이 아닌 것 같지만,
아주 중요한 부분으로 이러한 것이 지켜지지 않으면 기본이 무너진다.

처음에 한 번만 해놓으면 신경을 쓰지 않아도 되니
한 번 할 때 잘 해놓자!!!
반응형

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

File Status Lifecycle in GIT  (1) 2011.11.22
Repository 생성하기  (1) 2011.11.20
저장소 - Repository  (0) 2011.11.17
Git에게 주인님 알려주기 (in Windows)  (0) 2011.11.14
Install GIt (in Windows)  (0) 2011.10.24

Windows 환경에서 Git 설치하기


공식사이트(http://git-scm.com/)에서 "Download Git" 에 위치한
"Windows" 를 선택하면 아래 사이트로 이동하게 된다.


http://code.google.com/p/msysgit/downloads/list?can=3


Git-1.7.7-preview20111014.exe

해당 파일을 다운 받아서 실행만 하면 된다!


 


공식사이트에서는 찾아봐도 잘 안보이는 라이선스 문구...

Git은 GPL.v2 라이선스를 따른답니다~!!!


좀 특이한 인터페이스를 제공하는데,

개인적으로 리눅스 환경을 좋아하고
주어진 조건 그대로 설치하는 것을 좋아하기에...


checkout은 윈도우스타일!
commit은 유닉스 스타일!

윈도우와 유닉스(리눅스)를 섞어서 쓰는 환경에서는
이 놈의 line-ending이 꽤 속 썩인다!!!


설치하고 나면 바탕화면에 뭔가 생긴다!!!


실행하면 진짜로 bash 화면이~~~~!!!


여기까지 설치과정 끝!!!


반응형

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

File Status Lifecycle in GIT  (1) 2011.11.22
Repository 생성하기  (1) 2011.11.20
저장소 - Repository  (0) 2011.11.17
Git에게 주인님 알려주기 (in Windows)  (0) 2011.11.14
Git에게 주인님 알려주기 (in Ubuntu)  (0) 2011.10.30

+ Recent posts