git 에게 관리할 파일을 알려준 다음 우리가 경험하게 되는 다음 일은 바로 파일의 수정이다.
(아래에서 보는 코드의 원본은 open-source 로 진행되는 videoparser 이다)

관리 중인 소스 파일 중 하나를 수정한 이후...


1. modify & git status

   - 코드를 수정한 후 'git status'를 실행한다
   - 'modified' 된 파일이 확인된다.

 



2. git diff

   - 과연 무엇을 수정했는지 그것을 알고 싶으면 'git diff'를 실행하면 된다.



3. git add

   - 수정된 파일을 git 에게 알려주기 위해서는 우선 'git add' 과정을 다시 거쳐야 한다.



4. git commit

   - 최종적으로 'git commit'을 실행하고 코멘트를 적어주면 최종적으로 수정한 내역이 반영된다.



5. git log

   - 'git commit'을 실행하면 최종적으로 어떤 내용이 반영되었는지 알려준다.
   - git 에 반영된 내역들을 확인하기 위해서는 'git log'를 실행하면 볼 수 있다.




만약 여러개의 파일들을 수정하면 그것들을 일일이 하나씩 등록을 해야하는지,
변경한 것을 취소하고 싶을 때 어떻게 하는지 지금 상황에서 궁금한 것이 많겠지만,
차차 추가적으로 확인하도록 하자!!! (절대 지금 졸려서 그런 것 아니다!!! ^^)

반응형

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

git Review - stage, add, commit  (0) 2012.01.19
Compare - modify (git diff, git log) 2/2  (0) 2012.01.18
Tracking file - ignoring  (0) 2012.01.15
Tracking file - add, status, commit  (0) 2011.11.30
File Status Lifecycle in GIT  (1) 2011.11.22

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

+ Recent posts