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.






  • No labels