[git] reset

Published: by Creative Commons Licence

참고사이트

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0

reset

동일 브랜치 내에서 head 위치를 이동하는 명령어 참고로 head는 현재 커밋을 가리키고 마지막 커밋과 꼭 동일하지 않다.

git reset --hard [커밋ID]

$ git reflog
b8e83e2 (HEAD -> master, origin/master) HEAD@{0}: pull: Fast-forward
d0e12c8 HEAD@{1}: pull: Fast-forward
5b799a9 HEAD@{2}: commit: update
6dca34e HEAD@{3}: merge branch 'master' of https://github.com/mascaradee/labs.git: Fast-forward
bbfd861 HEAD@{4}: commit (initial): initialize

$ git reset --hard d0e12c8

헤드 HEAD, 인덱스 index, 워킹 디렉토리 Working directory

git을 사용할 수 있는 토대를 만든다.

  • 실제 폴더: .git 폴더가 생성되고 이것은 git을 만드는 토대, skeleton이다.
  • 브랜치: 기본 브랜치인 master가 생성되지만 아직 아무것도 가리키지 않는다.

git init

$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)

file1.txtStaging Area로 이동한다. Staging Area은 커밋대상이 있는 곳이다. Index

git add file1.txt

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   file1.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file2.txt
        new/