지난 내용에 더불어서 좀 특이한 경우를 살펴보기 위해서 보충해서 좀 적어보겠다.

소스 파일을 수정을 한 후 git 에게 commit을 할 것들을 알려주기 위해서 add를 했는데,
그리고 나서 또 수정을 하게 되면 어떻게 될까?


1. modify cycle

   - 일반적으로 파일을 수정하는 경우는 아래와 같이 표현할 수 있다.


   - 소스 파일을 수정한 후 'git add'를 하여 staged 상태로 만든 후 'git commit'을 하면 되는 것이다.


2. modify

   - 소스 파일을 수정하는 과정까지 일단 해본다.


   - 위 화면을 설명해보면...

      ① 파일 목록을 확인 [ ls -al ]
      ② 현 상태 확인 [ git status ] → 'nothing to commit (working directory clean)'
      ③ 소스 파일 수정 [ nano abiParse.py ]
      ④ 현 상태 확인 [ git status ]
      ⑤ 변경 사항 확인 [ git diff ]


3. git add

   - 일단 staged 상태로 만들기 위해 'git add'를 하자.



4. modify

   - 'commit' 하기 전에 다시 또 수정을 하면 어떻게 되는지 확인해보자.


   - 지금 상황에서 commit을 하게 되면 지금 수정하기 바로 전에 add를 한 시점에서의 내용이 commit이 되고,
   - 지금 변경한 내용까지 같이 commit을 하고 싶으면 다시 'git add'를 해주면 된다.


5. git diff

   - 이런 이상한 상황에서 각각을 확인하기 위한 'git diff' 에 대해서 알아보자.


   - [ git diff ]
      ▷ staged 되지 않은 변경 내역을 확인해 준다
      ▷ 즉, 수정을 하고 'git add' 를 하지 않은 내용을 보여준다
   - [ git diff --staged ]
      ▷ 지난 마지막 commit 에서부터 staged 된 내용까지의 변경된 내역을 확인해 준다
      ▷ 즉, 수정을 하고 'git add'를 해놓은 내용을 보여준다




조금 뭔가 햇갈리기 시작하시는 분은 아직 git의 staged 상태에 대해서 느끼지 못하셔서이다.
다음 번에는 이 staged 된 상태에 대해서 보다 더 다뤄보도록 하겠다.

반응형

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

One Shot - commit  (2) 2012.01.22
git Review - stage, add, commit  (0) 2012.01.19
Compare - modify (git diff, git log) 1/2  (0) 2012.01.17
Tracking file - ignoring  (0) 2012.01.15
Tracking file - add, status, commit  (0) 2011.11.30

+ Recent posts