반응형
📚 코딩애플의 '매우 쉽게 알려주는 git & github'을 수강하며 배우거나 추가적으로 찾아본 것들을 정리한 내용입니다.
실수했을 때 되돌아가는 3가지 방법
commit 고유 id 확인하기
git log --online
git restore
# 파일 하나를 최근 commit된 상태로 되돌리기
git restore 파일명
# 입력한 파일을 특정 커밋아이디 시점으로 복구하기
git restore --source 커밋아이디 파일명
# 그냥 참고!, 특정 파일 staging 취소하기
git restore --staged 파일명
- 파일 하나가 잘못되었을 경우 ctrl + z를 여러 번 눌러도 되지만 수정 사항이 너무 많다면 위의 명령어 하나로 처리할 수 있다.
- id 입력 없이 일반적인 방법으로 restore를 한다면 최근 commit된 상태로 현재 파일의 수정 내역을 되돌릴 수 있다.
git revert
# 커밋 하나를 취소하고 취소한 커밋을 생성하기
git revert 커밋아이디
# 최근해 했던 커밋 하나만 revert하고 싶다면
git revert HEAD
- 해당 커밋 id에서 일어난 일만 취소한다. 커밋 메세지를 수정하고 종료하면 된다.
- 커밋 id 이후에 했던 파일들이나 커밋들은 영향없이 유지된다.
- revert할 때 동시에 여러 개의 commit id를 입력할 수 있다.
git reset
# 해당 커밋이 생성될 때로 내용을 돌려준다.
git reset 커밋아이디
- commit2로 reset --hard해버리면 commit2 이후의 미래 기억을 모두 잃는다.
- 프로젝트를 아예 엎어버리거나 짧은 거리를 돌아갈때만 써야 한다.
- 여러 명이서 협업하는 레파지토리는 reset을 절대 쓰면 안 된다. 소스코드 자체가 사라지기 때문이다.
- untracked 파일들 (git add를 해놓지 않은 파일)들은 사라지지 않고 유지된다.
- git clean 명령어를 쓰면 untracked 파일도 모두 지울 수 있다.
reset 옵션 설정
--hard
# 위의 예제에서 a, b 파일 남기고 c파일 삭제하기
git reset --hard d874b2b
-- soft
# 위의 예제에서 a, c파일 남기고 b파일 staging area에 넣기. (커밋 가능)
git reset --soft d874b2b
-- mixed (기본값)
# 위의 예제에서 a, c파일 남기고 b staging 하지 않은 상태로 만들기. (add, 커밋 가능)
git reset --mixed d874b2b
rm : 파일 삭제
작업이 완료되어 원격에 push를 보냈는데, 올리지 않아도 되는 폴더를 올렸을 경우가 있다. 그래서 로컬에 삭제한 후 다시 push를 했음에도 github에서는 해당 파일이 삭제가 되지 않을 때, git 명령어를 통한 파일 삭제 후 push를 해주어야 한다.
# 원격 저장소와 로컬 저장소에 있는 파일을 모두 삭제할 때
git rm 파일명
# 원격 저장소에 있는 파일만 삭제하고, 로컬 저장소에 있는 파일은 그대로 둘 때
git rm --cached 파일명
[참고 자료]
https://codingapple.com/course/git-and-github/
반응형
'Etc.' 카테고리의 다른 글
[코딩애플 / git] git & github(5)_branch 사용법 (0) | 2023.03.31 |
---|---|
[코딩애플 / git] git & github(4)_push, clone, pull, fetch 사용법 (0) | 2023.03.28 |
[코딩애플 / git] git & github(2)_branch, merge 사용법 (0) | 2023.03.26 |
[코딩애플 / git] git & github(1)_add, commit, diff 사용법 (ft. VSCode) (0) | 2023.03.26 |
[Node.js / AWS Lambda / Discord] 시간 자동 알림 디스코드 웹 훅 만들기 (2) | 2023.03.24 |