[5분 따라하기]
git으로 undo하기(local편)
박재호(jrogue@gmail.com)
참고 자료
• <컴퓨터 vs 책> 블로그
• http://jhrogue.blogspot.com/
• OKdevTV 유튜브 방송
• 오늘 방송:
• https://www.youtube.com/watch?v=SJDkYQJqRkA&list=PLdntWJk2tJPLKNNYBVC
xnde2PEB6dzbSL&index=7
• 5분 따라하기 리스트:
• https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL
• 슬라이드 셰어
• https://www.slideshare.net/jrogue/presentations
• ASCIINEMA
• https://asciinema.org/~jrogue
오늘 소개할 내용
• git을 사용하다 보면 실수할 때가 있기 마련이다.
• 시나리오 1: git add를 했는데, 불필요한 파일이 포함되었어요. add를 취소
할 수 없을까요? (주의: 두 가지 사례로 나뉘어짐)
• 시나리오 2: git commit을 했는데, 불필요한 파일이 포함되었어요. 커밋을
취소할 수 없을까요?
• 시나리오 3: git push를 했는데... (다음 시간에~~~)
몇 가지 힌트(1)
• git에서 HEAD
• 특수한 포인터 → 지금 작업 중인 로컬 브랜치를 가리킴(브랜치가 없을 경우
master를 가리킴)
• 또는 마지막 커밋 스냅샷, 다음 커밋의 부모 커밋
• ~ vs ^: ~는 linear, ^는 tree나 fork의 원하는 세그먼트(merge 경우)
• ~ == ^ if 부모가 하나인 경우라면
• git에서 Index
• 바로 다음에 커밋할 내용 → staging area라고 부르며, git commit 명령을
실행할 때 반영할 내용을 담고 있음
• git에서 작업 디렉토리
• 현재 우리가 shell에서 볼 수 있는 디렉토리
몇 가지 힌트(2)
• 우리는 HEAD를 이동하면서 원하는 상태에 이른다
• HEAD 이동에 사용하는 명령은? 바로 git reset!
• reset의 옵션 세 가지
• --mixed(default): HEAD로 브랜치를 옮기고, Index를 HEAD가 가리키는 상태로 만
들고, 작업 디렉토리는 현 상태로 유지한다.
• --soft: HEAD로 브랜치를 옮기고, Index를 현 상태로 유지하고, 작업 디렉토리도 현 상
태로 유지한다.
• --hard: HEAD로 브랜치를 옮기고, Index를 HEAD가 가리키는 상태로 만들고, 작업 디
렉토리도 HEAD가 가리키는 상태로 만든다.
• 주의: 새 마음으로 최종 커밋 상태부터 다시 시작하려면?
• $ git reset --hard HEAD
• 참고 자료: 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
스크립트
$ mkdir undo
$ cd undo
$ git init
$ touch right.txt
$ touch wrong.txt
$ git add .
$ git status
$ git reset HEAD wrong.txt
$ git rm –cached wrong.txt
$ git status
$ git commit -m "first commit"
$ git status
$ git add .
$ git status
$ git reset HEAD wrong.txt
$ git status
$ git add .
$ git commit -m "wrong file committed“
$ git log
$ git reset --mixed HEAD^
$ git status
$ git log
명령행에서 직접 실행
보면서 따라해봅시다~~~
• https://asciinema.org/a/328103

More Related Content

PDF
[5분 따라하기] git으로 undo하기(remote편)
PDF
[설치의 정석] EC2에서 워드프레스 설치하기
PDF
2020년 4월 25일 개발 이야기 정리
PDF
2020년 5월 16일 개발 이야기 정리
PDF
[5분 따라하기] git 다중 사용자 신원 설정 방법
PDF
2020년 5월 2일 개발 이야기 정리
PDF
[5분 따라하기] 전화번호와 이메일 정규표현식
PDF
2020년 6월 6일 개발 이야기 정리
[5분 따라하기] git으로 undo하기(remote편)
[설치의 정석] EC2에서 워드프레스 설치하기
2020년 4월 25일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
[5분 따라하기] git 다중 사용자 신원 설정 방법
2020년 5월 2일 개발 이야기 정리
[5분 따라하기] 전화번호와 이메일 정규표현식
2020년 6월 6일 개발 이야기 정리

What's hot (20)

PDF
[5분 따라하기] bash에서 파일 확장자 변경
PDF
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
PDF
[5분 따라하기] bash 타임아웃 패턴
PDF
2020년 4월 18일 개발 이야기 정리
PDF
[5분 따라하기] paste로 파일 두 개 join하기
PDF
[5분 따라하기] 3차원 도넛을 콘솔에 그리기
PDF
2020년 10월 10일 개발자 이야기
PDF
[5분 따라하기] 3차원 지구본을 콘솔에 그리기
PDF
2020년 2월 1일 개발 이야기 정리
PDF
2020년 8월 1일 개발 이야기 정리
PDF
2020년 4월 4일 개발 이야기 정리
PDF
2020년 6월 13일 개발 이야기 정리
PDF
2020년 9월 19일 개발자 이야기
PDF
2020년 5월 9일 개발 이야기 정리
PDF
[5분 따라하기] EC2 키 분실 후 대응 방법
PDF
2021년 3월 20일 개발자 이야기
PDF
2020년 9월 26일 개발자 이야기
PDF
2020년 9월 12일 개발 이야기 정리
PDF
2020년 7월 4일 개발 이야기 정리
PDF
2021년 3월 13일 개발자 이야기
[5분 따라하기] bash에서 파일 확장자 변경
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[5분 따라하기] bash 타임아웃 패턴
2020년 4월 18일 개발 이야기 정리
[5분 따라하기] paste로 파일 두 개 join하기
[5분 따라하기] 3차원 도넛을 콘솔에 그리기
2020년 10월 10일 개발자 이야기
[5분 따라하기] 3차원 지구본을 콘솔에 그리기
2020년 2월 1일 개발 이야기 정리
2020년 8월 1일 개발 이야기 정리
2020년 4월 4일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리
2020년 9월 19일 개발자 이야기
2020년 5월 9일 개발 이야기 정리
[5분 따라하기] EC2 키 분실 후 대응 방법
2021년 3월 20일 개발자 이야기
2020년 9월 26일 개발자 이야기
2020년 9월 12일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리
2021년 3월 13일 개발자 이야기
Ad

Similar to [5분 따라하기] git으로 undo하기(local편) (20)

PDF
Git을 조금 더 알아보자!
PDF
[NDC16] Effective Git
PDF
git-basic-commands
PDF
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
PPTX
PDF
About git
PDF
Git tutorials
PPTX
Git 기본
PPTX
Git lecture2
PPTX
Advanced git
PPTX
PDF
소스트리(SourceTree)로 배우는 Git 사용법
PDF
Git 코드랩 스터디 2
PDF
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
PPTX
Git command
PDF
11. git basic
PDF
Git branch stregagy & case study
PDF
Git 입문자를 위한 가이드
PDF
Git: A Motivating Introduction
PPTX
Git 사용 가이드
Git을 조금 더 알아보자!
[NDC16] Effective Git
git-basic-commands
Git 과 GitHub 를 이용한 버전관리와 협업 - 2주차A - 비교하기와 되돌리기
About git
Git tutorials
Git 기본
Git lecture2
Advanced git
소스트리(SourceTree)로 배우는 Git 사용법
Git 코드랩 스터디 2
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
Git command
11. git basic
Git branch stregagy & case study
Git 입문자를 위한 가이드
Git: A Motivating Introduction
Git 사용 가이드
Ad

More from Jay Park (20)

PDF
[독서광] 코드 넘어 회사보다 오래 남을 개발자
PDF
(독서광) 윌 라슨의 엔지니어링 리더십 - 테크 리더를 위한 성공 전략
PDF
[독서광] 모던 소프트웨어 엔지니어링 - 소프트웨어 개발의 복잡함과 난해함 속에서 길을 찾으려는 엔지니어를 위한...
PDF
(독서광) Azure OpenAI로 ChatGPT와 LLM 시스템 쉽고 빠르게 구축하기
PDF
(독서광) 이펙티브 소프트웨어 설계 - 실수와 트레이드오프로부터 배우는 현명한 소프트웨어 설계 가이드
PDF
(독서광) 지능의 기원 - 우리의 뇌 그리고 AI를 만든 다섯 번의 혁신
PDF
(독서광) 린 프로덕트 플레이북: 시장에서 살아남는 프로덕트를 개발하는 6단계 프로세스
PDF
(OkdevTV) 2025년 1월 8일 개발 이야기
PDF
(독서광) 2024년 12월 모두를 위한 소프트웨어 보안 설계와 구현
PDF
(OkdevTV) 2024년 12월 18일 개발 이야기
PDF
(OKdevTV) 2024년 12월 5일 개발 이야기
PDF
(독서광) 2024년 11월 선택 설계자들 - 어떻게 함정을 피하고 탁월한 결정을 내릴 것인가
PDF
(OkdevTV) 2024년 10월 30일 개발 이야기
PDF
(OkdevTV) 2024년 10월 16일 개발 이야기
PDF
(독서광) 갈대 속의 영원 - 저항하고 꿈꾸고 연결하는 발명품, 책의 모험
PDF
(OkdevTV) 2024년 10월 2일 개발 이야기
PDF
(OkdevTV) 2024년 9월 2일 개발 이야기 - 좋은 리팩토링 vs 나쁜 리팩토링
PDF
[OkdevTV] 2024년 9월 2일 개발 이야기
PDF
[독서광] 프리세일즈 (Technical Presales) - 고객과 기업을 잇는 기술 대표
PDF
[OKdevTV] 2024년 8월 21일 개발 이야기
[독서광] 코드 넘어 회사보다 오래 남을 개발자
(독서광) 윌 라슨의 엔지니어링 리더십 - 테크 리더를 위한 성공 전략
[독서광] 모던 소프트웨어 엔지니어링 - 소프트웨어 개발의 복잡함과 난해함 속에서 길을 찾으려는 엔지니어를 위한...
(독서광) Azure OpenAI로 ChatGPT와 LLM 시스템 쉽고 빠르게 구축하기
(독서광) 이펙티브 소프트웨어 설계 - 실수와 트레이드오프로부터 배우는 현명한 소프트웨어 설계 가이드
(독서광) 지능의 기원 - 우리의 뇌 그리고 AI를 만든 다섯 번의 혁신
(독서광) 린 프로덕트 플레이북: 시장에서 살아남는 프로덕트를 개발하는 6단계 프로세스
(OkdevTV) 2025년 1월 8일 개발 이야기
(독서광) 2024년 12월 모두를 위한 소프트웨어 보안 설계와 구현
(OkdevTV) 2024년 12월 18일 개발 이야기
(OKdevTV) 2024년 12월 5일 개발 이야기
(독서광) 2024년 11월 선택 설계자들 - 어떻게 함정을 피하고 탁월한 결정을 내릴 것인가
(OkdevTV) 2024년 10월 30일 개발 이야기
(OkdevTV) 2024년 10월 16일 개발 이야기
(독서광) 갈대 속의 영원 - 저항하고 꿈꾸고 연결하는 발명품, 책의 모험
(OkdevTV) 2024년 10월 2일 개발 이야기
(OkdevTV) 2024년 9월 2일 개발 이야기 - 좋은 리팩토링 vs 나쁜 리팩토링
[OkdevTV] 2024년 9월 2일 개발 이야기
[독서광] 프리세일즈 (Technical Presales) - 고객과 기업을 잇는 기술 대표
[OKdevTV] 2024년 8월 21일 개발 이야기

[5분 따라하기] git으로 undo하기(local편)

  • 2. 참고 자료 • <컴퓨터 vs 책> 블로그 • http://jhrogue.blogspot.com/ • OKdevTV 유튜브 방송 • 오늘 방송: • https://www.youtube.com/watch?v=SJDkYQJqRkA&list=PLdntWJk2tJPLKNNYBVC xnde2PEB6dzbSL&index=7 • 5분 따라하기 리스트: • https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL • 슬라이드 셰어 • https://www.slideshare.net/jrogue/presentations • ASCIINEMA • https://asciinema.org/~jrogue
  • 3. 오늘 소개할 내용 • git을 사용하다 보면 실수할 때가 있기 마련이다. • 시나리오 1: git add를 했는데, 불필요한 파일이 포함되었어요. add를 취소 할 수 없을까요? (주의: 두 가지 사례로 나뉘어짐) • 시나리오 2: git commit을 했는데, 불필요한 파일이 포함되었어요. 커밋을 취소할 수 없을까요? • 시나리오 3: git push를 했는데... (다음 시간에~~~)
  • 4. 몇 가지 힌트(1) • git에서 HEAD • 특수한 포인터 → 지금 작업 중인 로컬 브랜치를 가리킴(브랜치가 없을 경우 master를 가리킴) • 또는 마지막 커밋 스냅샷, 다음 커밋의 부모 커밋 • ~ vs ^: ~는 linear, ^는 tree나 fork의 원하는 세그먼트(merge 경우) • ~ == ^ if 부모가 하나인 경우라면 • git에서 Index • 바로 다음에 커밋할 내용 → staging area라고 부르며, git commit 명령을 실행할 때 반영할 내용을 담고 있음 • git에서 작업 디렉토리 • 현재 우리가 shell에서 볼 수 있는 디렉토리
  • 5. 몇 가지 힌트(2) • 우리는 HEAD를 이동하면서 원하는 상태에 이른다 • HEAD 이동에 사용하는 명령은? 바로 git reset! • reset의 옵션 세 가지 • --mixed(default): HEAD로 브랜치를 옮기고, Index를 HEAD가 가리키는 상태로 만 들고, 작업 디렉토리는 현 상태로 유지한다. • --soft: HEAD로 브랜치를 옮기고, Index를 현 상태로 유지하고, 작업 디렉토리도 현 상 태로 유지한다. • --hard: HEAD로 브랜치를 옮기고, Index를 HEAD가 가리키는 상태로 만들고, 작업 디 렉토리도 HEAD가 가리키는 상태로 만든다. • 주의: 새 마음으로 최종 커밋 상태부터 다시 시작하려면? • $ git reset --hard HEAD • 참고 자료: 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
  • 6. 스크립트 $ mkdir undo $ cd undo $ git init $ touch right.txt $ touch wrong.txt $ git add . $ git status $ git reset HEAD wrong.txt $ git rm –cached wrong.txt $ git status $ git commit -m "first commit" $ git status $ git add . $ git status $ git reset HEAD wrong.txt $ git status $ git add . $ git commit -m "wrong file committed“ $ git log $ git reset --mixed HEAD^ $ git status $ git log 명령행에서 직접 실행