1. 커밋을 삭제하는 방법
삭제할 브런치 생성
파일생성 ( 상황을 위해 세팅하는 과정 )
staging area에 file1.txt 파일 추가
삭제하는 과정 파악하기 위해 임의로 여러 커밋들을 등록
세번쨰 커밋
파일 2개 추가
세팅 완료! log 확인
앞서 만든 파일들은 모두 커밋했으므로 추적이 가능!
# 삭제하는 방법은?
첫번째 방법 : 파일 직접 삭제
직접삭제 => 스테이징 영역으로 이동 => 취소상태로 변경
두번쨰 방법 : 명령어입력
git rm file2.txt
근데 삭제가 되지 않았다! 이유는 현재 위치가 git-basics이므로 찾지 못함! 경로를 잘 알려줘야함
위치 이동후 명령어 실행
차이점이 있다! 첫번째 방식으로 진행할 경우 스테이징 영역에 수정사항을 추가해야한다. (빨간색은 삭제된 상태)
이제 이 상황을 커밋하면 수정사항이 반영됨! 즉, rm같은 명령은 스테이징에서 커밋하는 단계를 스킵해준다.
근데 생각해보니 잘못 삭제해서 다시 복구하고 싶은 경우 복구가 가능할까?
2. 삭제한 커밋 복구하는 방법
명령어 : git reset --hard HEAD~1 ( 최근 삭제한 1개의 커밋을 복구 ) ~2,~3 도 가능
명령어 입력과 동시에 file2, 3가 복구된 것을 확인할 수 있다.
# reset 명령어는 브런치에 올라간 커밋을 되돌리는 것이므로 커밋을 삭제할 때 사용할 수도 있다. ( 생성 전으로 되돌리는 효과 = 삭제 )
3. Branch를 삭제하는 방법
명령어 : git branch -D "브런치명"
현재 작업중인 브런치 확인
현재 작업중인 브런치는 삭제할 수 없는 것 같다.
현재 작업중이 브런치가 아닌 feature를 삭제했더니 브런치가 정상적으로 삭제된 것을 볼 수 있다.
3.1 staging area에 추가되지 않은 사항 삭제하는 방법
수정사항 저장
명령어 git checkout -- .
실제로 사용할 상황은 파일 수정한 뒤 스테이징 영역에 올리지 않은 상태의 파일 즉, 트랙 파일이 아닌 파일을 되돌릴 때 사용하고 git status명령을 통해 파일이 트랙파일인지 아닌지 알 수 있다.
3.2 staging area에 추가 된 경우 브런치 삭제하는 방법
step 1. git add . 으로 file1.txt 파일을 트랙파일로 만듬
step 2. git reset file1.txt 명령은 file1.txt파일을 staging area에서 벗어나게함 즉, 트랙파일이 아닌 상태로 만듬
나머지 과정은 2.1과 동일 " git checkout -- ."입력 시 제일 최근 커밋으로 되돌아감= 스테이징 되지 않은 수정사항을 되돌림
수정사항이 되돌아간 것을 확인할 수 있다. ( 커밋할 거 없는거 status로 확인 )
'git & github > git & github 기초' 카테고리의 다른 글
[git & github 기초] 7. 공동 작업 (0) | 2024.01.30 |
---|---|
[git & github 기초] 6. gitub 원격 저장소 생성 (0) | 2024.01.30 |
[git & github 기초] 4. 브랜치, 병합, 충돌 (1) | 2024.01.25 |
[git & github 기초] 3. repository init 과 commit 생성 (0) | 2024.01.25 |
[git & github 기초] 2. git 기초 이해 (0) | 2024.01.24 |