상세 컨텐츠

본문 제목

VS code로 github 연동하기

버전관리도구/Git

by moonionn 2021. 3. 9. 18:47

본문

해당 포스트는 git 설치, 계정 생성까지 완료된 후 가능한 작업들입니다.

 

목차

  1. github 페이지에서 repository 생성하기 (remote 저장소 생성)
  2. local에서 directory 조작하기
  3. local에서 Git 구동하기
  4. remote와 local 연동하기
  5. 번외 : 브랜치 변경 (main -> master)

 


1.github 페이지에서 repository 생성하기

1-1. repository 생성

 

본인 계정으로 접속한 뒤 repositories 부분에서 new 라는 버튼을 클릭합니다.

 

1-2. repository 설정

저장소의 이름을 정해주고

저장소의 공개여부(public, private)를 정해줍니다.

Add a README file 과 .gitignore 파일도 중요한 부분이긴 한데

주제에서 조금 어긋나니 여기서는 넘어도록 하겠습니다.

 

생성이 완료되면 아래와 같은 화면이 뜹니다.

 


2. local directory 조작하기

저는 아래와 같은 디렉토리를 생성했습니다.

이 디렉토리를 통해 git 작업을 진행하겠습니다.

/Users/moonimooni/Desktop/Web/folder

 

2-1. 터미널 열기

VS code에서 터미널을 켭니다.

 

참고로 저의 VS code Terminal 기본 shell 은 zsh로 설정되어 있습니다.

bash shell 을 사용해도 해당 포스트의 명령어들을 따라하는데에는 무리는 없습니다.

 

👇혹시 모르니 zsh 설치방법도 링크 걸어놓겠습니다.

-macOS 설치방법 (역시 공부는 커스터마이징하는 재미)-

www.freecodecamp.org/news/how-to-configure-your-macos-terminal-with-zsh-like-a-pro-c0ab3f3c1156/

 

How to Configure your macOs Terminal with Zsh like a Pro

by Chiamaka Ikeanyi Sometimes, using the default terminal sucks. You want to go out of the ordinary, to add life to the boring terminal and improve your productivity. Z shell (Zsh) is a Unix shell built on top of bash (the default shell for macOS) with a l

www.freecodecamp.org

 

2-2. 터미널에서 디렉토리 변경하기

shell에서 리눅스 명령어를 통해 작업중인 directory로 변경합니다.

아래처럼 디렉토리를 직접 키보드로 치거나

 

내가 지금 어느 디렉토리에 있는지 헷갈린다 싶으면

왼쪽 explorer 메뉴에서 해당 폴더를 우클릭하면 Copy Path기능이 뜹니다.

해당 path를 복사 붙여넣기하여 디렉토리를 변경할 수도 있습니다.

 


2-3. 참고: cd 명령어

cd는 change directory의 약자, 즉 디렉토리 변경에 관련된 명령어입니다.

 

.. 을 통해 현재 디렉토리의 전 디렉토리로 이동합니다.

$ cd ..

 

.. 을 두 번 하면 세 단계 전 디렉토리로 이동합니다.

$ cd ....

 

directory에 ~ (물결표)가 표시된다면 root 디렉토리에 있는 것입니다.

혹은 아래 명령어를 통해 root 디렉토리로 이동할 수 있습니다.

$ cd ~

 

 

디렉토리 이름을 입력하면 현재 디렉토리를 기준으로

해당 디렉토리를 이름을 찾아 이동합니다.

$ cd directory_name/sub_directory_name

 


3. local에서 Git 구동하기

3-1. git init

작업중인 디렉토리로 이동했다면 아래 명령어를 통해 git을 활성화해줍니다.

그러면 새로운 'master'라는 단어가 나의 디렉토리 뒤에 붙습니다.

$ git init

 

3-2. vs code에서 source control

작업중인 폴더에 새로운 파일을 생성하였습니다.

git이 생성된 폴더 내에서 변경사항이 생기면

맨 왼쪽 메뉴바에서 세번째 아이콘에 업데이트 해야할 파일 수가 뜹니다.

 

해당 아이콘을 클릭하면 나의 git control 상황을 볼 수 있는데,

새로 만들어진 파일이니 U (untracked) 상태로 뜹니다.

(파일 내용이 변경되었을 때는 M (modified) )

 

3-3. git add

어떤 파일이든 변경사항을 저장하기 전 항상 add 라는 명령어를 거쳐야 합니다. 

$ git add 파일이름 을 통해 stage로 올려줍니다.

git add 뒤에 점을 하나 붙이면 (git add .) 수정사항이 있는 모든 파일을 add합니다.

$ git add .

해당 파일이 U (untracked)에서 A (added) 로 상태 변경

 

3-4. git commit

이제 아래 명령어를 통해 commit해줍니다. (최종 저장)

옵션에 -m을 붙이면 해당 commit에 대한 description을 적을 수 있습니다.

stage 단계에 올라간 파일들만 commit 처리가 되며

그 외 파일들은 아무런 작업도 적용되지 않습니다.

$ git commit -m '메세지내용'

changes가 깔끔하게 사라진 모습

 

3-4. git log

커밋 기록을 확인할 수 있는 명령어입니다.

알파벳 Q  를 누르면 나갈 수 있습니다.

$ git log

 


4. remote과 local 연동하기

github 페이지에서 repository를 처음 만들었을때 페이지를 다시 봅시다.

해당 페이지에는 local git을 연동시킬 수 있는 방법이 설명되어 있습니다.

 

4-1. 원격 저장소 연결

안내되어 있는 명령어 중 git remote add origin ~ 부분을 그대로 복사해 씁니다.

$ git remote add origin https://github.com/계정이름/remote repository이름.git

 

4-2. 원격 저장소에 저장

$ git push -u remote저장소 현재branch이름

이제 원격저장소와 연결이 되었으니 commit 기록을 push 해줍니다.

-u 옵션은 현재 로컬 branch(master)를  원격 branch(master)로 연결합니다.

따라서 해당 옵션을 사용해 push 했다면

그 이후부터는 굳이 branch 이름을 쓰지 않고도

git push, git pull 과 같은 명령어로 제어가 가능합니다.

 

다시 github 페이지를 새로고침 해보면 정상적으로 push가 된 걸 확인할 수 있습니다.

 


5. 번외: 브랜치 변경 (main -> master)

github repository를 처음 만들었을때 뜨는 설명중 

제가 스킵한 명령어가 있었습니다.

$ git branch -M main

이는 현재 브랜치의 이름을 강제로 바꾸는 명령어입니다.

 

최근 master가 인종차별적인 주종관계를 연상시키는 단어라는 의견으로 인해 (slave / master)

git에서도 master를 대체하여 main이라는 단어를 쓰기 시작했습니다.

 

하지만 내 local에서 처음 git을 구동시키면

아직 master라는 브랜치가 자동으로 생성됩니다.

(git을 최신버젼으로 업데이트 하지 않아서 그런가..?)

 

해당 명령어 적용 모습

master에서 main으로 바뀐 걸 확인할 수 있습니다.

 

생성된 branch를 확인해보면 main밖에 남아있지 않습니다.

따라서 git branch -M 명령어는 새로운 브랜치를 생성하는 것이 아니라

현재 브랜치의 이름을 변경하는 것임을 알 수 있습니다.

$ git branch #브랜치 목록 보기
$ git branch branch_name #브랜치 새로 생성
$ git branch -M new_branch_name #현재 브랜치를 new branch name으로 강제 변경

 

refname refs/heads/HEAD not found 에러

first commit 전에 git branch -M 명령어를 쓰면

아래와 같은 에러가 뜨며 명령어가 먹지 않을 때도 있습니다.

 

이럴때는 먼저 commit을 하고 연동을 시키거나,

git checkout을 통해 새로운 브랜치를 생성할 수 있습니다.

하지만 아래 명령어를 사용하면

기존의 브랜치를 덮어쓰는 것이 아니라 새로운 브랜치를 생성하게 됩니다.

따라서 원래 branch를 삭제해주는 과정이 필요합니다.

$ git checkout -b branch_name

#브랜치 삭제
$ git branch -d branch_name

 

관련글 더보기

댓글 영역