[git] 하나의 레포지토리에 여러 프로젝트 올리기

2023. 12. 31. 20:43기타

지금까지 간단한 프로젝트를 해도 따로 레포지토리를 만들었다.

근데 이게 하나하나 늘어나다보니 지저분해 보여서 방법을 찾게 됐다.

 

 

1. git 설치하기

https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

 

2. 프로젝트들이 있는 폴더로 이동

  • 내가 올리고 싶은 프로젝트들이 있는 폴더에 가서 하나씩 올리는게 아니라 한번에 올리도록 한다. (하위폴더로 이동하지 말 것)
  • 오른쪽 마우스 클릭 후 Open git Bash here을 선택해 git bash를 열어준다.

 

여기서 주의할 점은 꼭 폴더 선택 후 오른쪽 클릭이 아닌 바깥쪽에서 오른쪽 클릭으로 열어줘야 한다.

 

 

 

3. 명령어를 입력해준다.

git init                                => 처음에 한번만 해줘도 됨
git add ./{프로젝트 폴더 이름}            => 프로젝트마다 따로 한번씩 해줘야함
git commit -m "커밋 메시지"
git remote add origin {깃허브 레포지토리 주소}
git push origin master

 

위 명령어를 하나씩 입력해준다.


예시


만약 문제가 생긴다면 -f를 사용해 강제로 현재 프로젝트들을 넣어줄 수 있는데, 이 방법을 사용하면 해당 레포지토리에 기존에 있던 프로젝트들이 날아가고 덮어쓰기를 하기 때문에 신중하게 사용해야 한다.

git push -f origin master

** 나의 경우에는 이런 에러가 발생했었는데

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/..../CSharpBasicProject.git
'

하위 폴더에 git과 .vs 폴더가 생성을 잘못해서 나온 에러였다.

 

1. 하위 폴더의 cache를 지워준다.

하위폴더에 들어가서 깃 배쉬 실행 후 
git rm -r --cached .

 

2. 하위 폴더에 .git 폴더가 생성됐다면 없애버린다.


디렉터리 삭제

git rm --cached -r 삭제할 디렉토리명 또는 파일명
git commit -m "메세지"
git push 삭제할 버전

 

이렇게 하면 커밋 기록(잔디)도 삭제되지 않고 원하는 디렉토리를 삭제할 수 있다.

=> 직접 테스트 해본 결과

 

예시

git rm --cached -r CatchJava
git commit -m "delete source"
git push origin master

 

 

 

 

 

깃은 쓰다보면 꼬이는 경우가 있어서 그럴 땐 고치는 것보다 git 폴더를 삭제하고 처음부터 다시 하는게 빠를때가 많은 것 같다.

반응형