티스토리 뷰

반응형

github 저장소를 이용하다 보면 용량크기, 기타 오류로 인해 업로드가 안되는 경우가 종종 있다.

이런 경우 업로드하기전 자료를 add하거나 commit한 상태를 이전 상태를 되돌리는 방법이 필요하다.

 

이 글에서 git add와 git commit 를 취소하는 방법을 설명한다.

 

1. git add 를 취소하는 방법

 

git 저장소에 자료를 업로드하기 위해서는 3개 단계를 걸쳐서 진행된다.

첫번째는 자료가 생성, 추가, 삭제, 갱신되어야 한다.

두번째는 git add로 중간 스테이지에 변경된 자료를 올려놓는다.

세번째는 중간스테이지에 올라간 자료를 최종적으로 git commit -m "자료설명" 이라고 명령어로 승인을 한다.

 

따라서 중간 스테이지에서 자료를 다시 원래 있던 자리로 되될리는 경우가 있고,

승인난 자료를 다시 중간 스테이지로 되돌리는 경우가 있다.

 

1. git add를 실행해서 중간 스테이지에 올라간 자료를 되돌리기 위해서는

 

아래와 같이 실수로 git add * 명령을 사용하여 모든 파일을 Staging Area에 넣은 경우,
Staging Area(git add 명령 수행한 후의 상태)에 넣은 파일을 빼고 싶을 때가 있다.

 

우선 git status로 add한 파일을 확인한다. 여기서는 두개의 파일이 변경 수정되었다.

이름변경은 README.md파일이고,  내용 수정된 파일은 CONTRIBUTING.md이다.

 

이때, git reset HEAD [file] 명령어를 통해 git add를 취소할 수 있다.

// 모든 파일이 Staged 상태로 바뀐다.
$ git add *
// 파일들의 상태를 확인한다.
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
  renamed:    README.md -> README
  modified:   CONTRIBUTING.md
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

다은은 내용 수정된 CONTRIBUTING.md 파일을

git reset HEAD CONTRIBUTING.md 명령어를 실행해서 이전 상태로 되돌리는 예이다.

$ git reset HEAD CONTRIBUTING.md
Unstaged changes after reset:
M	CONTRIBUTING.md
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

실행 결과를 git status로 확인하면 다음과 같다

// 파일들의 상태를 확인한다.
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
  renamed:    README.md -> README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
  modified:   CONTRIBUTING.md
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

2. git commit를 실행해서 취소하는 방업

git log로 현재 상태를 확인하고

다음은 자료가 변경되어 git pull 한 후 git push 했는데 자료용량 크기로 실패한 경우이다.

 

이 때 취소해야 할 작업은 무엇이 있을까?

git push이전에 작업한 git commit작업을 취소해야한다.

 

그럼  git commit를 취소하기전에 내가 무슨 commit를 한지를 알아야 한다. 

이때 쓰는 명령어가 git log이다.

아래 그림에서 보이는 작업은 두 가지가 있다. 하나는 "yolo v8 모델 시작"이고 하나는  "야생동물 7종 2000장 이미지 훈련 train5" 이다.

여기서 "야생동물 7종 2000장 이미지 훈련 train5" 작업을 push할 때 오류가 나면

이전 "yolo v8 모델 시작" 돌아가기 위해서는 

git reset HEAD~1 이라고 실행하면 된다.
이는 맨 앞(HEAD)에 있는 첫번째(~1)를 되돌려라(reset) git 작업을 이라고 해석할 수 있다. 
맨 앞에 있는 작업은 "야생동물 7종 2000장 이미지 훈련 train5" 이다.
그리고 나서 git push를 하면 "yolo v8 모델 시작" 작업까지 git 저장소에 업로드 된다.

반응형
댓글