3. Git과 Github 이용하기 (VsCode)

JSLEE·2024년 4월 11일

이전 포스트에서 로컬(PC)에서 Git을 통하여 버전을 관리하는 것에 대해서 살펴보았다.
하지만, 단순히 로컬을 통해서만 관리하면 다른 개발자들과 협업이 불가능하거나 매우 어려울 것이다. 따라서 많은 개발자들은 Github이라는 웹사이트를 통하여 온라인을 통해 협업을 수행한다.
그렇다면 어떻게 Git을 이용하여 Github를 사용할까?


1) GitHub Repository 생성하기

먼저 Github에 대한 계정이 필요한데, 이 부분은 Github 페이지에서 간단하게 진행할 수 있으므로 생략한다.

Github 계정을 생성했다면, 프로젝트를 관리하기 위한 저장소가 필요하다. 이를 리포지토리(Repository)라고 부른다.
리포지토리는 우측상단의 프로필(Your profile) 에 들어가서 상단탭의 Repository 를 선택하고, New 버튼을 눌러 생성이 가능하다.

해당 페이지에서 리포지토리의 이름(name), 설명(Description), 공개/비공개(public/private) 등의 속성을 설정이 가능하다.


이제 모든 준비는 완료되었다. 우리는 VsCode에서 git으로 commit 단계까지 진행을 했었다.
(init - add - commit - log(확인용))

commit은 로컬에만 저장된다고 했으므로, 로컬에서 github으로 업로드 하도록 하는 새로운 명령어가 필요하다. 그것이 " git remote add " 와 " git push " 이다.

로컬에서 GitHub로 연결 - git remote add

사용법은 VsCode에서 업로드할 프로젝트 경로의 터미널을 열고 다음과 같이 입력한다.

  • git remote add 리포지토리이름 URL

github에서는 리포지토리를 생성한 뒤에 안내페이지가 나오는데, 이곳에 본인 리포지토리의 URL까지 모두 포함되어 있다. 따라서 그것을 복사해서 붙여넣기 하면 되겠다.

리포지토리 이름은 github에서는 origin으로 사용하도록 안내되어 있지만, 본인이 알아보기 쉽게 설정하면 되겠다.

그리고 최초 입력 시, 로그인 또는 토큰을 이용하도록 하는 안내창이 나오는데 본인의 github 계정을 입력하거나, github 내에서 토큰을 생성하여 입력하면 된다.

  • 토큰 생성방법
    우측 상단 계정 클릭 -> Settings -> Developer settings
    -> Personal access tokens -> Tokens (classic) -> Generate new token -> Generate new token(classic)
    -> 토큰의 용도 체크 -> 토큰 생성완료

토큰은 만료기간(expiration date)까지 사라지지 않고, 토큰 페이지에서 확인가능하다.

이렇게 진행하였다면, git remote -v 를 입력하여 현재 연결상태를 확인할 수 있다.
아무것도 출력되지 않는다면 연결되지 않은 것이고, 리포지토리이름과 URL이 출력된다면 성공적으로 연결된 것이다.

로컬의 변경사항 업로드 - git push

사용법은 마찬가지로 터미널에서 다음을 입력하면 된다.
git push 리포지토리이름 브랜치이름

여기서, 브랜치 이름이란 git log를 통해서 확인할 수 있고, main 임을 확인할 수 있다.
따라서, git push origin main 으로 입력한다.

이후 Github 웹페이지를 새로고침하면, 리포지토리가 갱신된 것을 확인 가능하다.


우리는 Github에 프로젝트 폴더도 연결했고, 업로드까지 완료했다.
이제는 다른 PC나 다른 사용자가 다운로드 받아서 사용할 수 있어야 한다.
다운로드에 필요한 명령어는 " git clone " 이다.

연결 및 다운로드 - git clone

사용방법은 다운받고자 하는 폴더 위치의 터미널에서
git clone 원격저장소URL를 입력한다.
원격저장소URL은 리포지토리 페이지의 Code 부분을 눌러서 확인 및 복사가 가능하다.

이렇게 수행을 했으면, 해당 폴더의 밑으로 리포지토리 폴더가 생성된 것을 확인할 수 있다.

CLI로 입력할 때 주의할 점은, 현재 터미널의 위치이다. 위의 방법으로 clone 했을 때, 터미널의 위치는 해당 폴더이고, clone 된 파일들은 하위폴더에 다운로드 된다.

그렇다면 clone 된 파일은 그대로였는데 리포지토리가 새롭게 갱신되었다면 어떻게 받아올까?

변경사항 가져오기 - git pull

사용법은 다음과 같다.
git pull 리포지토리이름 브랜치이름

즉 우리는 git pull origin main 으로 입력하면 되겠다.
이 부분에서 종종 not a git 이라는 오류가 발생하는데,
아까도 언급했듯이, 터미널의 위치가 리포지폴더에 위치해 있어야 한다.

오류가 발생했다면 연결을 해제하고 clone부터 다시 진행해보아도 좋다. -> git remote remove

github와 연결 해제하기 - git remote remove

사용법은 리포지토리 폴더에 터미널을 위치시키고,
git remote remove 리포지토리이름
이다.
즉, git remote remove origin 을 입력한다.

git remote -v 에서 아무것도 출력이 안되는걸로 연결이 끊겼음을 확인한다.
그리고 난 후 리포지토리 폴더를 삭제한다.


위에서 "브랜치"라는 용어가 자주 나왔다.
브랜치는 그래서 뭘까?

브랜치(branch)란

브랜치란 ,
개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

예를 들어, 이런 경우이다.
우리가 계산기를 만들고 있는데 A에게는 계산기의 + 부분의 구현을 맡겼고, B에게는 계산기의 * 부분의 구현을 맡긴다.
즉, 여러 작업을 병렬적으로 수행할 수 있다.

브랜치 만들기

우선, 터미널에서 git status로 working tree의 상태를 확인한다.
이상이 없이 clean하다면 현재 위치를 확인한다. -> git branch

브랜치 확인하기 - git branch

git branch를 이용하면 현재 branch의 목록이 출력된다.
브랜치를 나누지 않았다면, main 브랜치만이 존재할 것이다.
또한, 목록에서 * 표시가 되어있는 브랜치가 현재 브랜치를 의미한다.

그럼 branch를 어떻게 나눌까? -> git branch

브랜치 나누기 - git branch 브랜치명

git branch 브랜치명 을 입력하게 되면, 현재 위치를 기점으로 branch가 나누어진다.
예를 들어, git branch A 라고 입력한다면,
branch는 main과 A가 존재할 것이다.
그러면 만들어낸 브랜치로의 이동을 해서 작업을 해야할텐데, 어떻게 이동을 하는가? -> git checkout

브랜치 이동하기 - git checkout 브랜치명

만들어둔 A 브랜치로 이동하려면, 터미널에서 git checkout A 를 입력한다.
그러고 난 뒤 git branch 를 입력해보자.
현재 위치가 *A로 표시되어 현재 내가 A브랜치에 있다는 것을 알 수 있다.

추가적으로 알아두면 좋은 팁이 있는데 하이픈을 이용하는 것이다.
git checkout -
으로 입력하게 되면 이전의 branch로 이동하여 이름을 적지 않고 편하게 이동할 수 있다.

여기서 주목할 점은, A로 branch를 이동했어도 commit history (버전 관리 이력)은 똑같이 나타난 다는 점이다. 따라서, A에서도 main에서의 변경이력을 모두 확인 가능하다.

profile
공부한 내용들을 정리하기 위해 사용하는 블로그입니다.

0개의 댓글