저번 글에서는 로컬에서 깃을 다뤄보고, 로컬에서 쓸 수 있는 여러 깃 명령어를 써보았습니다.
이번에는 깃허브를 이용해, 로컬에서 벗어나 깃허브 클라우드에 우리의 레포지토리를 올려봅시다.
목차
깃허브를 쓰는 이유
1. 우리의 프로젝트를 클라우드에 저장 가능
만약 다른 컴퓨터의 코드를 이용해 작업한다면 클라우드 환경은 큰 장점이 됩니다.
원격 레포지토리에 우리의 진행상황을 업데이트하므로, 쓰던 환경이 아니어도 클라우드에서 코드를 가져와 작업이 가능합니다.
또한 우리 컴퓨터가 고장났을 때, 데이터 손실이 일어나도 클라우드에는 데이터가 남아있어 작업 재개가 가능합니다.
2. 개인 포트폴리오 제작 가능
깃허브에 자신의 프로젝트를 올리고, 다른 개발자나 회사들에게 자신의 능력을 보여줄 수 있습니다.
3. 유용한 협업 도구
팀 프로젝트 시 메인 코드와 개인 코드에 대해 각각 접근이 가능해, 손쉽게 코드를 관리할 수 있습니다.
4. 오픈 소스 컨트리뷰션
공식 팀이 아니더라도, 오픈 소스 프로젝트에서 다른 개발자의 프로젝트에 기여가 가능합니다.
깃허브는 이런 컨트리뷰션에도 체계적으로 접근 가능하게 해줍니다.
깃허브 시작하기
먼저, 깃허브 사이트에 들어가 가입을 하고, 새 원격 레포지토리를 만듭니다.
프로필에서 repository 탭을 누르거나, 초록색 new 버튼을 누르면 원격 레포지토리 생성이 가능합니다.
레포 이름을 써주고, Public으로 설정해 오픈소스 레포를 만든 후 들어가보면 다음과 같은 글이 보입니다.

우리는 저번에 이미 로컬 레포지토리를 만들었으므로, 1번의 명령어는 쓸 필요가 없습니다.
대신, 이미 있는 레포지토리를 push하는 2번의 명령어를 쓸 것입니다.
push는 로컬 레포지토리의 컨텐츠를 방금 만든 원격 레포지토리에 올리는 것을 말합니다.
git remote add origin [원격저장소 링크]
git branch -M main
git push -u origin main
먼저, git remote add는 원격저장소에 연결을 추가하는 명령어입니다.
원격 저장소의 링크를 origin이라는 키워드를 통해 바로가기처럼 사용할 수 있게 해줍니다.
이렇게 링크를 origin으로 설정하면, 이후에 전체 url을 쓰지 않아도 origin 키워드만 쓰면 해당 링크에 접근이 가능합니다.
그 후 branch -M main은 현재 브랜치 이름을 main으로 바꾸는 것을 의미합니다.
이미 주 브랜치 이름을 main으로 설정한 사람들에게는 쓸 필요가 없는 명령어입니다.
마지막으로 git push를 해서 원격 저장소에 코드를 올립니다.
-u 부분은 업스트림에 관한 속성으로, 생략해도 됩니다.
이 명령어를 통해 origin 키워드로 등록한 링크의 레포지토리에 main 브랜치 내용을 올리게 됩니다.
push를 하게 되면, 깃허브에 로그인하라는 알림창이 뜹니다.
깃허브 developer settings 에 들어가, personal access token을 생성하면 되는데,
repo와 write, read, delete packages, 그리고 use 권한을 체크하고 생성하면 됩니다.

생성이 끝나면 토큰을 복사해 vs code로 돌아옵니다.
알림창에서는 취소 버튼을 누르고, 위쪽에 뜨는 창에 먼저 username을 치고, password 창이 뜨면 복사해놓은 토큰을 칩니다.
이렇게 로그인을 끝내고 push를 하면, 깃허브에서 우리의 코드와 커밋들을 볼 수 있습니다.
깃허브에서 프로젝트 불러오기
다른 환경에서 작업하게 되었을 때, 사용자의 정보가 vscode에 인증되어있지 않을 확률이 높습니다.
그런 경우에는 깃 절차가 완전 달라지게 됩니다.
먼저, 아까 인증해놓은 사용자 정보를 지워보겠습니다.
git credential-osxkeychain erase
host=github.com
protocol=https
위 세 줄의 명령어로 vscode에 등록된 사용자의 깃허브 정보를 지울 수 있습니다.
이 프로젝트에 접근 권한이 없는 다른 컴퓨터와 동일한 환경으로 만드는 것입니다.
이후 vs코드 프로그램을 껐다가 켜 새로 만든 폴더를 열도록 합니다.
git clone [레포 주소] .
터미널을 열어 위의 명령어를 입력하면 원격 저장소의 코드를 로컬에 복제해올 수 있습니다.
맨 마지막에 .를 쓰지 않으면, 원하는 폴더 안에 폴더가 또 생기고 그 안에 코드가 들어있을 것이기 때문에
.를 써서 코드 파일이 내 폴더 안에 바로 들어오도록 했습니다.
이 상태에서 깃은, 저장소 전체를 가져왔기 때문에 따로 내 정보를 넣지 않아도 add와 commit이 가능합니다.
다만 push를 하려면 아까 했듯이 토큰을 입력해야 합니다.
그렇다면 내 정보가 등록된 환경에서 업데이트된 코드를 불러오는 것은 어떻게 할까요?
git pull
업데이트된 내용을 올리는 명령어가 git push였으므로, 불러오는 명령어는 git pull 입니다.
이 상태에서 git log를 입력해보면, 업데이트된 커밋이 불러와진 걸 확인할 수 있습니다.
다른 사람의 프로젝트에 기여하기
다른 사람의 코드에 수정 사항을 만들어, 원작자에게 제안할 수도 있습니다.
이를 오픈 소스 컨트리뷰션이라고 합니다.
깃허브에는 오픈소스 컨트리뷰션의 체계가 잘 잡혀있어, 과정만 잘 따라가면 누구나 다른 프로젝트에 기여를 할 수 있습니다.
1. 먼저 깃허브에서 기여하고 싶은 프로젝트에 들어가, 프로젝트를 fork해옵니다.

사진의 fork버튼을 누르면 자신의 저장소에 코드를 복제해올 수 있습니다.
2. 본인의 작업환경에서 fork해온 저장소의 정보를 git clone 명령어로 가져와 코딩합니다.
git clone [레포 주소] .
아까처럼 이 명령어를 쓰면 됩니다.
3. 수정한 코드를 fork해온 내 저장소에 add, commit, push합니다.
git add .
git commit -m "커밋메세지"
git push origin main
add를 통해 staging area에 올리고, commit을 통해 버전을 저장한 후, push로 원격저장소에 내 커밋을 업로드합니다.
4. pull request합니다.
원작자에게 수정사항을 알리려면 pull request를 해야합니다.

fork해온 내 코드에서 pull requests 탭을 누른 후, 오른쪽 위의 New pull request 버튼을 누릅니다.

그러면 내가 어떤 repository에서 fork해왔는지, 어떤 커밋을 더했는지 볼 수 있습니다.
여기서 create pull request를 누르면, 변경사항에 대해 간단히 개요를 쓰고 pull request를 만들 수 있게 됩니다.
5. 원작자가 Merge pull request와 Close pull request 중에서 선택합니다
원작자는 자기 레포의 pull request 탭에서 현재까지 올라온 pull request들을 조회할 수 있습니다.
올라온 것들을 보고, 현재 프로젝트에 합치고 싶을 경우 merge를, 반영하고 싶지 않은 경우 Close 버튼을 누릅니다.
merge할 경우 Merge pull request->Confirm merge 버튼을 눌러 merge를 확정시키면 코드가 병합될 것입니다.
'TIL' 카테고리의 다른 글
[html/css] 100일 코딩 챌린지 - css position (0) | 2023.04.13 |
---|---|
[html/css] 100일 코딩 챌린지 - flex 박스 (0) | 2023.04.12 |
[Git] 100일 코딩 챌린지 - Git 기본 명령어 (2) | 2023.04.10 |
[HTML/CSS] 100일 코딩 챌린지 - 실습(9, 10일차) (0) | 2023.04.07 |
[HTML/CSS] 100일 코딩 챌린지 - html 레이아웃 만들기(8일차) (0) | 2023.04.06 |