처음 만나는 git
Index
git이란?
git을 적용하기 위해 필요한 스킬과 도구
-
git
- git을 사용하기 위해 당연히 git이 필요합니다.
- Ubuntu와 MacOS는 git이 이미 설치되어 있습니다. 만약 재설치가 필요한 경우,
$ apt-get install git
(Ubuntu),$ brew install git
(MacOS)로 git을 설치해주세요. - windows는 git bash 사용을 위해 https://gitforwindows.org/ 에서 도구를 다운로드 한 뒤, 설치를 진행합니다.
-
Terminal
- CLI 에서 git을 사용하기 위해 터미널이 필요합니다.
- windows는 여기서 powershell 또는 cmd로도 가능하지만 git과 함께 제공되는 git bash에서 git 관련 작업을 진행합니다. git for windows 다운받기
-
Text Editor
- 작업을 위한 텍스트 편집기가 필요합니다.
- 여기서는 vim으로 작업과 커밋메시지를 작성합니다.
-
github 계정
git을 시작하기 전 해야할 몇가지 작업
git을 본격적으로 사용하기 전 github username과 email, 사용할 Editor, pager를 설정해야 합니다. 어떤 위치에서 하셔도 상관없습니다.
1 | git config --global user.name "당신의유저네임" |
config 작업이 끝났다면, $ git config --list
명령으로 메일주소와 유저네임에 오탈자가 있는지 확인합니다.
git 시작하기
프로젝트를 시작하는 방법은 크게 두가지가 존재합니다.
1. git init
작업공간에서 시작하여 github으로 소스코드를 순차적으로 내보냅니다.
asciinema
- 프로젝트 폴더를 만듭니다.
1 | mkdir first-git-repo |
git init
명령으로 local repository로서 역할을 시작합니다.
$ git init
- github에서 새로운 비어있는 remote repository를 생성하고, 복사한 주소를 local repository에 등록합니다.
- 여기서 remote repository 이름은 컴퓨터에서 생성한 새 폴더
first-git-repo
와 이름을 맞춤으로써 나중에 헷갈리지 않도록 합니다.
https://github.com/당신의유저네임/first-git-repo.git
- 위에서 복사한 주소를 활용해 현재 작업공간에서 remote repository 주소를 추가합니다.
$ git remote add origin 복사한주소
여기서 origin은 복사한주소를 부르기 위한 이름이며, 다른 이름을 쓰셔도 괜찮습니다.
예)
1 | git remote add cat 복사한주소 |
- 잘 추가되었는지 확인합니다.
$ git remote get-url origin
- 새 파일을 만들고 작업을 수행합니다.
1 | touch README.md |
i
를 눌러 insert mode를 활성화 한 뒤, 텍스트 편집을 수행하고 esc
키를 눌러 normal mode로 빠져나와 :wq
를 입력하여 저장한 뒤 vim을 종료합니다.
- 작업이 끝났다면
$ git status
명령으로 현재 프로젝트의 상태를 확인합니다.
untracked files: README.md
가 보인다면 다음 작업을 할 준비가 되었습니다.
- workspace에 추가된 새로운 파일을 index로 staging합니다.
$ git add README.md
- 추가된 README.md 에 대한 설명을 commit합니다.
$ git commit
core.editor=vim
으로 설정했기 때문에 다른 에디터가 아닌 vim 에디터로 commit 메시지를 작성할 수 있습니다.
i
를 눌러 insert mode를 활성화 한 뒤, commit message를 작성하고 esc
키를 눌러 normal mode로 빠져나와 :wq
를 입력하여 저장한 뒤 vim을 종료합니다.
모든 작업이 끝났다면 $ git status
를 입력해 commit 할 내역이 존재하는지 확인합니다.
만약 vim이 아직 어색하다면, $ git commit -m "커밋메시지"
를 입력하면 커맨드라인에서 바로 Commit message를 입력할 수 있습니다.
tip: commit message 깔끔하게 입력하기
- open source 개발의 경우, source code 뿐 아니라 Commit message도 공개되기 때문에 모든 사용자가 읽을 수 있는 언어를 선택합니다^^
- commit message의 제목에 말머리를 달아 Commit의 카테고리를 바로 확인할 수 있도록 합니다.
feat:, docs:, test:, refactor:
정도의 말머리만 잘 붙여도 깔끔한 관리가 가능합니다.- Reference: Conventional commits
- commit message의 제목은 구(두개 이상의 단어가 모인 하나의 품사)의 형태를 띄게 합니다.
- commit message는 제목과 내용이 존재합니다.
- 내용은 optional body에 Enter로 구분하여 작성하며, 문장형으로 작성합니다.
1 | <말머리>[optional scope]: <제목> |
- commit 이 끝났다면 remote repository로 push 합니다.
첫 commit이라면, -u(–set-upstream) flag를 붙여 push 하여 현재 작업중인 branch가 업로드할 branch의 변동사항을 추적하도록 설정합니다.
$ git push -u origin master
이후에는 -u 옵션 없이 바로 push 합니다.
$ git push origin master
- 4~8의 작업을 반복 수행합니다.
2. git clone
github에서 remote repository를 먼저 생성한 뒤, 작업공간으로 끌어와 작업을 시작합니다.
asciinema
-
github에서 remote repository를 생성하되, LICENSE, README.md, .gitignore 등의 파일과 함께 생성합니다. 그리고 Clone or Download 버튼을 눌러 해당 repository의 주소를 복사합니다.
-
Terminal에서
$ git clone 복사한remoteRepo주소
를 입력하여 작업공간에 local repository를 생성합니다. -
새 파일을 만들고 작업을 수행합니다.
1 | touch README.md |
i
를 눌러 insert mode를 활성화 한 뒤, 텍스트 편집을 수행하고 esc
키를 눌러 normal mode로 빠져나와 :wq
를 입력하여 저장한 뒤 vim을 종료합니다.
- 작업이 끝났다면
$ git status
명령으로 현재 프로젝트의 상태를 확인합니다.
untracked files: README.md
가 보인다면 다음 작업을 할 준비가 되었습니다.
- workspace에 추가된 새로운 파일을 index로 staging합니다.
$ git add README.md
- 추가된 README.md 에 대한 설명을 commit합니다.
$ git commit
- commit 이 끝났다면 remote repository로 push 합니다.
remote repository에서 먼저 끌어와 사용하는 구조이기 때문에 remote repository의 master 브랜치와 local repository의 master 브랜치는 추적하도록 세팅되어 있습니다.
따라서, 위의 -u flag를 붙이지 않아도 됩니다.
$ git push origin master
- 3~7의 작업을 반복 수행합니다.
Practice
TIL
repo를 생성한 뒤clone
명령어를 사용해 작업공간으로 복사하여 오늘 배운 것을 git/만든날짜-git-start.md 에 정리하여 업로드 해보세요.
1 | /TIL |