협업을 위해 GitHub에 프로젝트 초기 세팅하기

샨티(shanti)·2023년 6월 20일
0

TIL

목록 보기
144/145

협업을 위해서는 GitHub에 프로젝트를 초기 세팅해야 할 일이 생긴다.

이제까지 제대로 된 협업을 해 보지 않았기도 하고, 또 팀프로젝트를 진행할 때에는 프로젝트 초기 세팅 파트를 담당하지 않았었기 때문에 어떻게 해야 하는지 잘 몰랐는데, 본격적으로 실무를 시작하면서 GitHub에 프로젝트 세팅을 해봐야겠다는 생각에 반나절을 씨름하며 나름대로 1차 정리를 해 두었다.

개인 노션에도 정리했지만 만약(?)을 위해 벨로그에도 정리하는 TIL.
로컬에서 프로젝트 세팅을 마친 후에 GitHub에 업로드하는 방법에 대해 기록한다.

GitHub에 프로젝트 초기 세팅하기

GitHub에 프로젝트를 세팅하는 방법은 크게 두 가지로 나눌 수 있을 것 같다.
먼저 로컬과 GitHub remote 저장소를 연동한 뒤 세팅을 진행하여 커밋, PR을 날리는 방법.
그리고 로컬에 모든 세팅을 완료시킨 뒤에 GitHub remote 저장소를 연동하여 upload 하는 방법.

전자는 크게 어렵지 않게 느껴졌는데 항상 후자가 어렵게 느껴졌고 한번도 시도해보지 않았었다.
항상 branch를 새로 파서 commit, PR을 날리는 나로서는 '어떻게 main 브랜치에 바로 적용될 수 있는거지?' 라는 의문이 남아있던 상태.

실무를 시작한 이상 더 이상 회피할 수 없는 문제이므로 몇몇 자료를 찾아보고 시도했다. 반나절이나 걸린 이유는 당연히 여러 에러를 겪었기 때문인데 오늘을 깔끔하게 내가 시도한 방법에 대해서만 정리하고, 맞닥뜨렸던 에러와 해결 방법에 대해서는 별도로 정리해보고자 한다.

간략한 순서와 함께 핵심만 정리한다.

1. 깃허브에 repo를 생성하기

레포를 생성할 때 README.md 파일을 생성하느냐 마느냐에 따라 오류가 발생하곤 했었다. 나 역시 이 부분 때문에 꽤 애를 먹고 레포를 여러번 지웠다가 생성했는데 결론적으론 맞닥뜨리는 에러에 따라 해결 방법이 존재하기 때문에 크게 중요한 것은 아닌듯 하다.

하지만 에러를 해결할 시간이 없다면 그냥 깔끔하게 README.md 파일을 생성하지 않고 repo를 만드는 것도 나쁘지 않은듯.

2. 업로드 할 폴더에 git 생성

업로드 할 폴더라 함은 이미 원하는 방식으로 프로젝트 세팅이 완료되어 있는 폴더를 의미한다.
나같은 경우에는 npx 명령어로 커스터마이징 된 프로젝트 세팅폴더를 생성할 수 있는 상황이었고 이를 그대로 repo에 올리면 되는 것이었다. 이걸 못해서 난리 법석..

여튼. 업로드하고자 하는 폴더에서 git init 명령어를 통해 이니셜라이징을 해 준다. 이렇게 해야 로컬과 remote 저장소를 연결시킬 수 있기에.

3. 커밋

많이 헤맸던 부분인 것 같다.
커밋을 하려면 당연히 원격 저장소를 연결하고 그다음 브랜치를 파고 커밋을 하고 등등...
이 순서를 지켜야 한다고 생각했는데 그냥 커밋을 하라니.
어쨌든 결론적으론 가능하다. git status를 해 보면 unstaged 파일, 디렉터리 등을 확인할 수 있고 이 모든 것을 업로드해야 하므로 git add .로 스테이징 한 후에 git commit을 진행한다.
커밋 메시지에 대한 컨벤션은 모두 다르기 때문에 상황에 맞게 진행.

이렇게 커밋을 완료하면 working tree는 당연히 clean한 상태이며 branch는 master인 상태로 확인될 것이다.

4. 브랜치명 변경

여기서 나의 의문이 슬슬 풀렸던 것 같다. master 브랜치라니!!! 했는데 결론적으론 브랜치명을 main으로 바꿔줘야 한다.
브랜치 이름을 바꾸는 git 명령어는 2가지로 나뉘는 것 같은데 나는 capital M을 사용한 명령어로 바꾸었다. git branch -M main

위와 동일하게 작용하는 명령어는 git branch -m main master이다. new branch name이 먼저 들어가고 그다음 old branch name이 뒤에 들어가는 식.
이렇게 git 명령어를 하나씩 익혀갈 수 있다.

5. 로컬과 원격 저장소 연동

생성해 둔 레포와 로컬을 연동시키는 작업을 진행한다.
git remote add origin 원격저장소 주소
지정된 상태를 확인할 때는 git remote -v 명령어를 사용할 수 있다.

그리고 원격 저장소와 로컬을 동기화하는 과정이 필요하다.
git fetch origin
git rebase origin/main
타 자료들을 확인해보니 pull 명령어를 통해 이를 한번에 해결 가능하다고 하는데 나는 pull을 할 줄은 모르니... 두 번에 나누어서 시도했다.

이 때 맞닥뜨린 에러가 README.md 파일 conflict이다. 원격과 로컬의 내용이 다르다는 점이었고 rebase가 중단된다는 메시지였다.
에러 해결은 아주 어렵지 않았고 VSCode를 오픈하여 conflict를 해결한 후에 git add .를 다시 시도하고 터미널 메시지에 떴었던 git rebase --continue를 진행해주니 rebase가 정상적으로 진행되었다.

6. push로 마무리

원격 저장소도 main브랜치, 그리고 로컬의 브랜치도 main으로 이름을 바꾸어두었기 때문에 로컬의 내용을 원격에 upload, 즉 push하는 것으로 마무리하면 된다.
PR이 생기지 않는 것이 조금은 낯설긴 했지만 어쨌든 이 명령어는 아래와 같다.

git push -u origin main

다른 블로그 글들에서 conflict가 났을 때 force push를 하면 된다고 했는데 이를 몇번 시도해보니 이전 commit을 덮어쓰기 때문에 내가 원하는 모양새로 나오지 않는 것을 확인했다.
git push -f인데 이건 참고로 작성해둔다.

어쨌든!! 원하는 모양대로 프로젝트를 세팅해보는 경험을 해보았다.
시간은 오래 걸렸지만 한 번 해보기도 하고 또 정리해두니 든든.

References

[GitHub] Repository 초기 세팅 및 업로드

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글