안녕하세요,
재재입니다.

github 따라하기 세번째 포스팅입니다.
이번 포스팅을 통해 github 에서 많이 사용하는 명령어 중,
git reset 에 대해 다뤄볼게요.

(1) Unstaged 상태로 돌리기

이번 작업 환경은, 3_reset 폴더입니다.
https://github.com/wowoto9772/github-practice git 을
fork 하신 repo 에서 진행해주시면 됩니다.

3_reset 폴더 내 item-org.txt 파일을 변경해볼게요.

cd 3_reset/
echo "This line may be deleted." >> item-org.txt

파일의 변경사항을 확인 해보겠습니다.

git diff

그리고 그 결과는 다음과 같습니다.

@@ -1,2 +1,3 @@
 This is original item.
 This item should be preserved.
+This line may be deleted.

unstaged 상태의 item-org.txt 를 staged 상태로 변경하고,
확인해볼게요.

git add item-org.txt
git status

staged 상태의 item-org.txt 를 다시 unstaged 로 변경하고,
확인 해볼게요.

git reset HEAD item-org.txt
git status

이번엔, 파일의 변경점을 완전히 없에볼게요.

git checkout -- item-org.txt
git diff

git checkout — 을 통해,
현재 commit 기준으로 변경점이 있었다면 제거해줍니다.
이때, untracked 파일의 경우는 바뀌지 않습니다.

(2) 가장 최근 커밋 제거하기

이번엔, 같은 경로에 빈 파일을 만들고 커밋을 진행해볼게요.

touch empty.log
git add empty.log
git commit -m "Add empty.log to 3_reset"

현재 커밋 리스트를 확인해보겠습니다.

git log
# quit with q

가장 마지막 커밋인, “Add empty.log …” 를 삭제해볼게요.

git reset --soft HEAD~1
git status

위의 결과로,
empty.log 가 commit 하기 전 상태인 staged 로 변경 된 것을 확인 할 수 있습니다.

이제, empty.log 를 다시 unstaged 및 untracked 상태 로 변경해볼게요.

git reset HEAD empty.log

reset HEAD 를 통해, 현재 commit 기준으로 unstaged 상태로 변경했지만,
현재 git 은 empty.log 에 대해 모르기 때문에 untracked 상태가 되었습니다.

다음단계 포스팅은 아래와 같습니다.

(3) 코드 url

https://github.com/wowoto9772/github-practice/tree/main/3_reset

Github 따라하기 – git reset
태그:             

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다