이전 작업으로 돌아가는 실행취소가 아니라,
commit을 했는데, 미처 추가하지 못한 작업이 있어서 나중에 추가를 하고 싶은 경우에 대해서 설명하고자 한다.


1. Ready


오늘 설명할 기능을 위해서 상황을 준비했다.
위 스크린샷을 보면 알겠지만, 파일 2개를 수정한 상황으로 준비했다.


2. commit


2개의 파일 중에서 1개만 staging해서 commit을 했다고 해보자.

그런데, 나머지 파일도 방금 진행한 commit에 집어넣고 싶다면 어떻게 해야할까!?


3. git commit --amend


대상 파일을 'add' 하고선 'git commit --amend' 명령어를 실행하면,
comment 입력 에디터 화면이 뜨고, 저장을 하고 종료하면 마무리 된다.


4. log


로그를 확인해보면, 2개의 commit이 아니라 기존 commit에 반영이 되어있다는 것을 확인할 수 있다.

그리고 commit 기록 시간이 중요한데,
처음에 commit 시간이 그대로 반영 되어있다. 변화하지 않는다!




사용자가 실수를 했을 경우에 이를 만회할 수 있는 명령어들 중 하나에 대해서 설명을 하였다.
이미 commit을 한 것을 수정할 수 있다는 것은 살짝 논란거리가 될 수도 있다.

하지만, 나중에 살펴볼 Remote Server와의 관계를 생각하면 별 문제가 아닐 수도 있다.

중요한 것은 우선 실수를 하지 않는 것이다.
하지만, 만약 commit 할 때에 실수를 했다면 'git commit --amend'를 기억하면 더 좋겠지...!? ^^
반응형

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

Git Server - Local  (0) 2012.02.22
Protocol - Git Server  (0) 2012.02.20
Log - gitk  (0) 2012.02.15
Log - git log  (2) 2012.02.14
Move file - git mv  (0) 2012.02.13

+ Recent posts