git bash를 사용한 git hub commit 오류 해결

김태훈·2023년 8월 19일
0

git

목록 보기
1/1

오류 발생 상황

이클립스의 프로젝트 소스파일들을 저장할 git의 로컬 레포지토리를 새로 init 한 이후 깃허브 원격 저장소로 해당 소스코드를 commit하려고 다음의 프로세스 대로 수행을 했다.

git init
git remote add origin "내 레포지토리 주소"

git add .
git commit -m "your message"

정상적으로 명령어들이 수행이 된다면 commit 이 정상적으로 이루어저 내 원격 레포지토리로 소스파일들이 옮겨져야하는게 맞다.

Error Message

git commit -m "쇼핑몰 프로젝트"

를 수행한 이후 다음의 오류 메시지가 떴다.

git commit -m "쇼핑몰 프로젝트"
On branch master
nothing to commit, working tree clean

????분명히 나는 로컬에 새로운 레포지토리를 initiallize를 했고 다음의 메시지를 bash로부터 받았는데???

git init
Reinitialized existing Git repository in C:/DATA/JAVA/shop/.git/

오류 원인

git init 은 레포지토리의 .git/이 이미 있다면 initialize를 정상적으로 수행하지 않는다는 것을 알게 되었다.
따라서 다음의 순서대로 다시 git bash에서 명령어를 수행해 해결했다.

오류 해결

rm -rf  .git 
git init 
git add . 
git commit -m "쇼핑몰 프로젝트"
git remote add origin https://github.com/THproger13/shoppingMall.git
git push -f origin master

git bash 명령어 rm -rf .git 설명

.git/ 디렉토리는 Git 저장소에 관련된 모든 정보를 포함하고 있는 디렉토리로, 이 디렉토리가 없으면 해당 디렉토리는 Git 저장소로서의 역할을 수행하지 못한다. 때때로 .git/ 디렉토리를 삭제해야 하는 상황이 발생할 수 있다. 필자의 경우에는 이미 .git이 이미 init되어있는 상태에서 다시 init명령을 수행해서 .git이 init되지 않는 상태였다.따라서 원하는 디렉토리(경로)의 파일 및 폴더를 삭제하는 명령어를 수행했다.
rm -rf .git/ 명령은 .git 디렉토리를 강제로 삭제하는 명령이다. 아래는 좀더 자세한 명령러 설명을 정리한 것이다.

rm: 리눅스와 유닉스 기반 시스템에서 파일을 삭제하는 명령어다.
-rf: rm 명령에 붙이는 옵션으로, -r은 디렉토리와 그 하위에 위치한 모든 폴더와 파일구조및 내용을 삭제(재귀적으로 삭제한다고 한다.)한다는 의미고, -f는 강제로 삭제하라는 의미이다.
.git/: 이 부분은 삭제하려는 디렉토리의 경로이다. .git/ 디렉토리를 삭제하면 해당 디렉토리에 저장된 Git 저장소 정보와 커밋 히스토리 등이 모두 삭제된다.
.git/ 디렉토리를 삭제하면 해당 디렉토리가 Git 저장소가 아니게 되므로, 이후로는 Git 관련 기능을 사용할 수 없게 된다. 따라서 로컬 레포지토리와 깃허브의 원격 레포지토리를 연결하려면 .git을 다시 init하면되는 것이다.

참고자료

다음은 참고한 블로그의 링크이다.
https://velog.io/@fejigu/git-push-error-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-nothing-to-commit-working-tree-clean

https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%89%BD%EA%B2%8C%EC%9D%B4%ED%95%B4

0개의 댓글