코젤브

[Git] 로컬에서 작업하던 프로젝트 GitHub Repository에 커밋하기 본문

컴공의 일상/게임 개발 - 유니티

[Git] 로컬에서 작업하던 프로젝트 GitHub Repository에 커밋하기

코딩하는 젤리 2024. 1. 19. 02:47

로컬에서 작업하던 프로젝트를 GitHub에 커밋해야하는 경우

GitHub Repository를 별도로 생성한 후 받아와서 작업하는 게 아니라

로컬에서 먼저 작업 중인 프로젝트를 GitHub Repository에 올려야하는 경우를 말하는 것이다.

 

Git Bash를 사용합니다.

 

우선, 로컬에서 작업하던 프로젝트 폴더를 우클릭해서 Git Bash Here를 클릭합니다.

1. 로컬 Git Repository를 만들기

git init

로컬 Git Repository 상태 확인하기 (git status)

git status

 

2. 전체 파일을 추가하는 과정

git add .

 

3. 커밋 메세지와 함께 로컬 Git Repository에 Commit하기

(아래의 경우 커밋 메세지 : init commit)

git commit -m "init commit"

 

4. Github Repository와 연결하기

(이때 미리 생성해둔 git repository 주소 필요!)

[주소] 형식은 다음과 같습니다. https://github.com/yujinS0/VR-test.git

git remote add origin [주소]

 

잘 연결되어 있는지 상태 확인하기

git remote -v

 

5. 로컬 Repository 내용을 Github Repository에 Push하기

(아래의 경우 마스터 브랜치에)

 git push origin master

 

여기까지가 기본적인 Git Bash를 활용한 Github push 방법이다.

 


 

+) .gitignore 과  .gitattributes 파일도 잘 작성합시다!

이때 발생하는 OS 별 LF 형식 변경에 대한 warning에 주의하자.

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

.gitignore 파일에 대한 줄 끝 (Line Ending) 형식이 변경될 것을 경고하고 있다.
경고 메시지에 언급된 내용은 "LF" (Line Feed) 줄 끝이 "CRLF" (Carriage Return + Line Feed)로 바뀌게 될 것으로
Git은 다양한 운영 체제에서 사용되며, 각 운영 체제는 다른 줄 끝 형식을 사용할 수 있다.
(일반적으로 리눅스와 macOS는 LF를 사용하고, Windows는 CRLF를 사용)
Git은 이러한 차이를 관리하기 위해 .gitattributes 파일이나 .gitignore 파일과 같은 설정 파일을 사용

따라서 .gitattributes 파일을 사용하여 프로젝트별로 줄 끝 형식을 설정 (파일 생성 후 아래 내용 추가)

* text=auto

 

 

 

추가적으로 GitHub에서는 대용량 파일을 저장하는 데에는 Git Large File Storage (LFS)를 사용하기도 합니다.

1. 로컬 머신에 Git LFS 설치

git lfs install

 

2. Git LFS를 사용하여 대용량 파일을 추적 (예를 들어 .dll 파일 추적)

git lfs track "*.dll"

또는 직접 .gitattributes 파일에 용량을 초과하는 파일을 명시해주기

 

어쨋든 변경 사항이 발생하면 아래처럼 진행하면 된다.

변경 사항 추가하고 커밋 후 다시  Github Repository에 Push하기

git add .
git commit -m "Git LFS"
 git push origin master

 

 

용량 초과 문제로 위와 같은 이런 저런 세팅을 추가해줬는데 계속 오류가 발생해서 찾아보니

커밋 이력을 삭제해주고 다시 커밋하라고 한다.

git log 명령어를 통해 이력 확인 후 아래 명령어를 사용하면 이전 커밋을 삭제할 수 있다.

git reset --mixed HEAD^

 

특정 커밋에서 특정 파일을 삭제하는 방법에 대해 잘 정리되어있는 블로그를 참고했다.

https://data-scient2st.tistory.com/135

 

[Git] git push size limit 오류 해결하기 (해결 완료, rebase, git-lfs)

목차 문제 상황 문제 파악 문제 해결 방법 이전 커밋 rebase로 수정하여 대용량 파일 배제하기 (git rebase) git-lfs로 대용량 파일 관리하기 문제 상황: 추천 시스템 데이터를 다운로드하여 프로젝트에

data-scient2st.tistory.com