지난 내용에 더불어서 좀 특이한 경우를 살펴보기 위해서 보충해서 좀 적어보겠다.
소스 파일을 수정을 한 후 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 |