깃허브(github) 명령어 알아보기

jomminii_before·2020년 2월 4일
9

깃허브 명령어에 대해 알아봅시다.

git init

git init의 init은 "initialize(초기화)"를 뜻합니다. 이 명령어를 입력하기 전까지는 일반 디렉토리였지만, git init으로 초기화를 시키면 해당 디렉토리를 로컬 깃 저장소로 등록해줍니다. 이제 깃 명령어를 사용할 수 있습니다. 얼핏보면 차이가 없지만, '.git' 파일이 생성되어 숨어있습니다.

➜  github_test git init
Initialized empty Git repository in /Users/LeeJongMin/github_test/.git/

깃허브의 저장소 구조를 간단히 살펴보면, 크게 로컬 저장소와 원격 저장소로 나뉩니다. 각 단계에 맞춰 코드를 등록하고 저장합니다.

git status

지정된 저장소의 현재 상태를 나타내며, 상태 변경이 필요한 파일들을 알려주기도 합니다.

➜  github_test git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	Readme.txt

nothing added to commit but untracked files present (use "git add" to track)

현재 상태를 보면, 아직 트래킹되지 않는 파일이 있으며, git add 를 이용해 트래킹을 시작하라고 알려주고 있습니다.

git add <파일 이름>

git add 뒤에 스테이지에 올릴 파일 이름을 적어 작업을 진행합니다. 참고로 git add --all이나 git add .을 사용하면 status에 나온 변경사항을 모두 스테이지에 올려줍니다.

➜  github_test git:(master) ✗ git add Readme.txt
➜  github_test git:(master) ✗ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   Readme.txt

➜  github_test git:(master) ✗ 

git add를 한 후 status 를 확인해보니 스테이지에 올라간 후 commit 대상으로 바뀐 파일을 볼 수 있습니다. 터미널 창을 보면 git rm --cached <파일 이름>을 입력하면 스테이지에서 내릴 수 있음을 알 수 있습니다.

git commit -m "커밋 내용"

로컬 저장소의 최종 단계인 Head에 파일을 등록하기 위해서는 git commit을 사용해야한다. 현재 커밋 대상이 되어있는 파일을 한 번에 모두 커밋시키며, -m 뒤에는 버전 관리를 위한 커밋 메시지를 작성해야합니다.

➜  github_test git:(master) ✗ git commit -m "첫번째 커밋"
[master (root-commit) 74351d0] 첫번째 커밋
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 Readme.txt
 ➜  github_test git:(master) git status
On branch master
nothing to commit, working tree clean

커밋을 하고나면, working tree(작업 공간)는 비워집니다.

이제 원격 저장소와 로컬 저장소를 연결시켜야 합니다. (처음 디렉토리를 만들때 연결을 진행해도 됩니다.)

git remote add origin

git remote add 는 현재의 로컬 저장소를 깃허브에 있는 특정 레퍼지토리에 연결하겠다는 명령어 입니다.

git remote add origin https://github.com/jomminii/text001.git
➜  github_test git:(master) git remote -v
origin	https://github.com/jomminii/text001.git (fetch)
origin	https://github.com/jomminii/text001.git (push)

git remote -v

연결이 잘 되었는지 확인하기 위해서는 git remote -v 명령어를 사용하면 됩니다. 위의 코드에서 볼 수 있듯이, 명령어를 치면 현재 로컬 저장소와 연결된 저장소 url이 반환됩니다.

git push <리모트 저장소 이름> <push할 브랜치 이름>

git push 명령어를 사용하면, 드디어 로컬 저장소에 있던 파일을 원격 저장소로 보낼 수 있게 됩니다.

➜  github_test git:(master) git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 227 bytes | 113.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/jomminii/text001.git
 * [new branch]      master -> master

git clone

위에서 로컬 저장소에서 만든 깃 폴더를 원격 저장소에 연결하는 방법을 알아봤다면, 반대로 원격 저장소에 있는 폴더를 로컬로 가져오는 명령어가 git clone 입니다. git clone을 사용히면 현재 디렉토리에 깃허브의 레퍼지토리를 그대로 복사(클론) 해줍니다.

git branch <새로운 브랜치 이름>

새로운 브랜치를 생성할 때 git branch <새로운 브랜치 이름> 명령어를 사용하며, 만들어진 branch를 확인할 때는 git branch만 입력하면 확인할 수 있습니다. 브랜치 확인 창을 빠져 나올때는 'q'를 누르면 됩니다.

➜  github_test git:(master) git branch "branch01"
➜  github_test git:(master) git branch
* branch01
  branch02
  master
(END)

### git checkout <전환할 브랜치 이름>
작업하고 있는 브랜치를 전환할때는 `git checkout <전환하려는 브랜치 이름>` 명령어를 사용합니다. 

➜ github_test git:(master) git checkout "branch01"
Switched to branch 'branch01'
➜ github_test git:(branch01)

위와 같이 체크아웃을 사용하면, 괄호로 표시된 브랜치가 "master"에서 "branch01"로 바뀝니다.

### branch 관련 기타 명령어
`git branch -d` : 브랜치를 삭제할 때
`git branch -D` : 병합하지 않은 브랜치를 강제 삭제할 때 
`git checkout -b <생성하고 전환할 브랜치 이름> : 브랜치를 생성하고 전환까지 할 때 
profile
https://velog.io/@jomminii 로 이동했습니다.

0개의 댓글