본문 바로가기

Computer

[Git] Git, GitHub 기본 사용법

Git과 GitHub을 다루는 것은 개발자가 되는 첫걸음이라 할 수 있을 정도로 필수적인 관문이다. 간단히 설명하자면 Git은 로컬에서 작업한 코드의 버전을 관리하는 툴이고, GitHub는 Git의 버전 기록을 올려 원격으로 협업할 수 있는 웹사이트이다. GitHub를 많이 보기는 했지만 실제로 다뤄보는 것은 처음이라 명령어가 익숙하지 않았다. 그래도 올해 1일 1커밋을 목표로 매일 사용하다 보니 차츰 손에 익기 시작했다. 다시 복습도 해볼 겸 Git과 GitHub의 기본 사용법을 정리해보았다.


Git 사용법

1. Git으로 버전 관리 시작하기

1-1. Git 설치 및 버전 확인

$ sudo apt-get install git
$ git --version

1-2. 디렉토리에 Git 심기

$ cd ~
$ mkdir workplace
$ cd workplace
$ git init

init은 initialization의 약자로, 이제부터 Git이 있는 workplace 디렉토리에서 발생하는 모든 변화가 기록된다.

 

2. README.md 파일 생성하기

$ echo "# first-repository" >> README.md
$ cat README.md

README 파일은 GitHub 레파지토리의 대문과 같은 역할로, 방문자들에게 본인의 작업물에 대해 간단히 소개하는 내용을 담은 파일이다. 마크다운(Markdown) 언어를 사용하기 때문에 md 확장자를 가진다. echo는 출력을 하는 명령어로, >>를 통해 출력 타겟을 README.md 파일로 지정하면 파일 생성과 동시에 텍스트를 입력할 수 있다. 그리고 cat 명령어를 통해 텍스트 파일의 내용 출력해볼 수 있다.

 

3. Git으로 변화 기록하기

$ git status
$ git add README.md
$ git commit -m "new readme file"

git status로 Git이 추적하고 있는 변화를 확인해보고, 아직 기록되지 않은 변화가 있으면 add, commit 순으로 기록을 진행한다. add는 변화를 기록하기 위한 일종의 준비 작업이고, commit은 변화를 기록하여 확정하는 작업이라 할 수 있다. commit을 할 때는 반드시 어떤 내용인지 메시지를 달아야 하는데, 메시지 옵션인 -m 뒤에 해당 커밋에 대한 설명을 작성하면 된다.


GitHub 사용법

4. 로컬의 Git에 GitHub 계정 정보 등록하기

4-1. GitHub 회원가입

4-2. Git과 GitHub 계정 연결

$ git config --global usesr.email "my-email@gmail.com"
$ git config --global user.name "my-username"

4-3. Git에 등록한 config의 정보 확인

$ git config -l  

 

5. 로컬 저장소와 원격 저장소 연결하기

5-1. GitHub에서 새 레파지토리 생성

5-2. 로컬 저장소와 GitHub 레파지토리 연결

$ cd ~/workplace  
$ git remote add origin https://github.com/username/repository-name.git
$ git remote -v

레파지토리(Repository)는 로컬 저장소의 작업물을 저장할 수 있는 GitHub의 원격 저장소이다. Git에게 GitHub의 레파지토리 주소를 알려주고 두 저장소 간에 정보를 전송할 수 있도록 원격 저장소를 origin 이라는 이름으로 지칭한다. -v 옵션을 주면 연결된 레파지토리 주소를 볼 수 있다.

 

6. 로컬 저장소와 원격 저장소 간에 기록 주고받기

6-1. 로컬 저장소의 기록을 원격 저장소로 전송하기(push)

$ git push origin main

현재 로컬에 있는 버전 기록과 모든 파일들을 origin, 즉 원격 저장소의 main 브랜치로 push해서 밀어넣겠다는 의미이다. 로컬에서 작업한 것을 GitHub에 올릴 때 사용한다.

 

6-2. 로컬 저장소를 원격 저장소와 같게 업데이트하기(pull)

$ git pull origin main

origin이라는 별칭의 원격 저장소를 로컬 저장소로 pull해서 당겨온다는 의미이다. 원격 저장소에 변화가 생겼을 때 그 내용을 가져와 로컬 저장소도 동일하게 업데이트한다.

 

6-3. 원격 저장소를 로컬 저장소로 가져오기(clone)

$ git clone https://github.com/xxx/first-repository.git

복제라는 뜻을 가진 clone 명령어를 사용하면 GitHub의 레파지토리를 통째로 가져올 수 있다.