reset 은 작업 취소과정에서 다양하게 사용할 수 있다.
reset 이 커밋의 참조를 삭제하기 때문에 히스토리가 변경된다.
즉, reset은 공유되지 않는 브랜치의 히스토리를 변경하는데만 사용하는것이 좋다.
reset의 대상은 유지될 것이고, revert의 대상은 삭제되는것을 뜻한다.
$ git log --online 4c239d9 Merge pull request #13 from CalebeGeazi/master 220dc3b fixed page 5/1 where 2 slides were combined into 1 dde7c5d Updated URL for slides to use non-personal project page. 54f49bb OSCON 2015 Portland: Updated handout with revised book terms eca7edd OSCON 2015 Portland: Language updates based on updated book terms 2db982d Changes to "Undo" graphic: add credits, add license, clean export $ git reset dde7c5d Unstaged changes after reset: M README.md M resources/workflow-sample-whisperingpines-releasecycle.md ... $ git diff diff --git a/README.md b/README.md index 9131b87..3d8ebac 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,24 @@ Git for Teams of One or More ... $ git add --all $ git status $ git diff --staged // 수정사항을 확인하려면 staging의 것을 확인함. $ git commit -m "Replacing" [master 6ec7060] Replacing
브랜치의 세개의 커밋을 하나로 압출하려면 다음과 같은 명령어를 사용
$ git reset HEAD~#
■ 로컬에서 README.md 파일을 삭제한 경우.
$ rm README.md $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: README.md no changes added to commit (use "git add" and/or "git commit -a") $ git checkout -- README.md
■ 로컬에서 README.md 파일을 삭제한 후 Add 한 경우.
$ rm README.md $ git add README.md $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) deleted: README.md $ git reset HEAD README.md Unstaged changes after reset: D README.md $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: README.md no changes added to commit (use "git add" and/or "git commit -a") $ git checkout -- README.md //위의 두명령어를 하나로 합칠경우. $ git reset --hard HEAD -- README.md
로컬 폴더의 수정사항을 모두 취소하고
이전 커밋에 저장된 파일로 되돌릴 경우
$ git reset --hard HEAD HEAD is now at b4faee3 Replace feedback link for 2016 OSCON workshop.