본문 바로가기
Version Control System

git push 취소 & ignore 기능 사용하기(1)

by Davidev 2021. 9. 3.
반응형

 

[배경]

 

git ignore 기능을 테스트하다가 2회 커밋을 진행하고 remote 저장소에 push 해버렸다.

 

 

 

[문제]

 

팩트1. window 환경에서 정상적인 git ignore 기능 사용 방법에 대해 모른다.

+뇌피셜) 내가 참조한 블로그에서 설명한 내용이 잘못되었거나 제대로 적용하지 못했을 가능성.

 

 

 

[목표]

 

1. remote repository에 저장되어 버린 내용을 취소한다.

2. window 환경에서 정상적인 git ignore 기능 사용 방법을 숙지하고 정리한다.

 

 

 

[해결 방법]

 

1-1. push 취소하기 위해 참조한 블로그에서 'git rm [file name]' 을 입력하면,

원격 저장소와, 로컬 저장소에 있는 파일을 삭제한다고 나와서 시도해보았다.

 

결과는 fail.

 

에러 메시지에 '-r' 을 빠뜨렸다고 알려주어서 다시 try.

루트 디렉토리에서 test_util 폴더가 정상적으로 삭제되었다.

그러나 remote 저장소에는 그대로 있다....

 

그래서 이번에는

"원격 저장소에 있는 파일은 삭제해주고, 로컬 저장소에 있는 파일은 삭제하지 않는다."는

엄청난 기능의 아래 명령어를 실행해보았다.


'git rm --cached [File Name]' 실행.

내가 원하는 test_util 폴더는 삭제가 안되었지만, .gitignore 파일은 정상적으로 삭제되었다..

 

다시 한번 구글링을 시도한 후

신박한 방법을 찾아냈다.

 

아래 3개 명령어를 차례대로 실행하면 remote에 저장된 폴더를 삭제할 수 있다고 한다. 

 

$ git rm -r --cached test_util

$ git commit -m "remove Projects test_util directory"
$ git push origin master

 

결과는 실패했다.

첫번째 명령어 실패
두번째 명령어로 파일들이 지워졌고, 이 시점에 main 브랜치에 새로운 체크섬(8ccc7e2)이 생겼다...
세번째 명령어 실패.

 

후... 나의 Github Projects 저장소는 여전히 test_util, .ignore.txt 를 가지고 있다.

오늘 벌써 2시간 넘게, 자정이 지났으니 어제와 오늘 꽤나 오랜시간 고전하고 있지만

내일은 반드시 해결해야겠다..

 

Git push 취소 실패!!ㅎㅎ 2탄에서는 성공하는 글을 쓰길 바래본다..

반응형

댓글