1. 이미 push한 commit 취소하기
(1) 강제 푸쉬를 통해 해결
(*주의: 개인 브랜치에서만 사용할 것*)
1번 과정
: 최신 커밋을 취소하여 내가 원하는 곳까지 취소하기
git reset 명령어
> 진행된 커밋 이전의 커밋으로 HEAD가 이동함.
# 1. mixed
# 작업 디렉토리 유지, 인덱스만 HEAD와 함께 되돌림.
git reset --mixed <commit_id> # == git reset <commit_id>
# 2. hard
# 작업 디렉토리 ,인덱스 모두 되돌림.
# 따라서 작업하던 내용 모두 정리할 때만 사용 **
git reset --hard <commit_id>
# 3. soft
# 작입 디렉토리, 인덱스 모두 유지,
# 커밋만 취소할 경우 사용
git reset --soft <commit_id>
https://mylko72.gitbooks.io/git/content/restore/repos.html
# [ 최신 커밋 취소 ]
# 커밋은 했지만 푸쉬는 하지 않았을 때 쓴다.
# 1. 최신 커밋 취소, 스테이징 영역에 커밋 대기중인 파일 취소
git reset HEAD^
# 2. 최신 커밋 취소, 워킹디렉토리와 스테이징에 있는 파일 취소
git reset --hard HEAD^
# 3. 최신 커밋 취소, 워킹티렉토리와 스테이징에 있는 파일 유지
git reset --soft HEAD^
2번 과정
: 아래 코드로 어디까지 취소가 진행되었는지 확인하기
git log --pretty=oneline
3번 과정
: 현재 수정된 파일이 있는지 확인
git status
4번 과정
git add .
5번 과정
git push --force origin 브랜치명
(2) 깃 브랜치 새로 생성해서 해결하는 방법
1번 과정
git reset HEAD^ # 가장 최근 커밋 취소하기.
git reset HEAD~3 # 최신 커밋 3개 취소.
2번 과정
: 해당 작업 commit 기록
git commit -m "message"
3번 과정
: 새로운 브랜치 생성
git checkout -b test
> 해당 로컬 저장소에 있는 폴더, 파일을 포함한
새로운 브랜치가 생성된다.
4번 과정
: 해당 브랜치 삭제 (깃허브 홈피에서)
or
git push origin --delete 브랜치명 (원격 저장소)
git branch -d 브랜치명 (로컬 저장소)
5번 과정
: 해당 커밋 push하기
git push origin test
6번 과정
: 로컬 및 원격 브랜치 상태 업데이트
git remote prune origin
'여니의 프로그래밍 study > Github' 카테고리의 다른 글
[git] .gitignore 파일 생성하는 방법 (0) | 2022.03.05 |
---|---|
[git] error: failed to push some refs to 'https://...git' (0) | 2022.03.05 |
[Git] failed to push some refs to '...git' 오류 해결 (0) | 2022.03.03 |
[Github] branch (로컬/원격) 목록 조회 및 브랜치 참조 업데이트 (0) | 2022.03.03 |
Github 오류 | fatal: Exiting because of an unresolved conflict. (0) | 2021.04.23 |