여기에서는 가장 많이 이용하는 github과 같이 연동하여 사용하는 것을 전제로 진행해보겠습니다.
$ git -v
$ git config --global user.name "github유저네임(아이디)"
$ git config --global user.email "github메일주소"
$ git config --global core.editor "vim"
$ git config --global core.paper "cat"
$ git config --global user.name "github유저네임(아이디)"
--global
플래그(옵션)이 없으면 새 프로젝트를 할 때마다 계속 설정해야 될 수 있습니다. 번거로운 작업이 될 수 있고 로그인을 여러번 하는 것을 방지하는 등의 이유로, 해당 플래그를 사용해서 설정하는 것을 권장합니다.--global
설정하는 내용이 많이 보이는 것도 그런 이유가 아닐까 생각됩니다)$ git config --global user.email "github메일주소"
github과 연동할 때 여기서 설정한 이메일을 매치하여 작업하기 때문에, github에서 등록한 email주소와 다르다면 에러가 발생할 수 있습니다. github과 연동하고자 할 때 에러가 발생한다면 git config --global --list
또는 git config --list
명령을 통해 email이 올바르게 작성되었는지 먼저 확인해보시는 것도 괜찮습니다.
$ git config --global core.editor "vim"
git에서 vim을 이용하여 텍스트 에디트를 할 경우 설정합니다.
$ git config --global core.paper "cat"
cli에서 텍스트 입력이 필요할 때 다른 프로그램(e.g. VSCode)이 열릴 수 있습니다. DX(Developer Experience, 개발자 경험)측면에서 좋지 않기 때문에 shell에서 텍스트를 출력하고 확인할 수 있도록 설정합니다.
잘못 설정한 경우 해결 방법
vi ~/.gitconfig
명령으로 텍스트를 편집하여 (직접) git 환경설정 파일을 수정
git config --global --unset user.email
=> git config --global user.email "수정할 메일 주소"
(위는 예시 입니다. --unset
과 수정하고 싶은 환경설정이름을 사용하여 설정을 제거해주고, 이후 다시 설정해주면 됩니다)
window git bash에서 붙여넣기
마우스 우클릭으로 붙여넣기 하거나, shift
+ insert
키 입력으로 붙여넣기
username
, email
, password
를 잃어버리지 않고 잘 기억하기New
버튼 클릭*
표시된 항목은 필수 입력 항목입니다.Owner
Repository name
Description
Public
, Private
Public
)할지 비공개(Private
)로 할 것인지를 설정합니다. Private repository의 경우 추가로 비용을 지불하지 않을 경우 제약사항이 있을 수 있으니 Public으로 사용하는 것을 권장합니다.Add a README file
create react app(CRA)
과 같이 자동으로 README.md파일을 생성하는 라이브러리와 같이 사용한다면, 서로 충돌이 발생(github에서 생성한 README.md, CRA에서 생성한 README.md - 둘 다 루트경로에 생성하기 때문에 동일한 위치)할 수 있습니다.Add .gitignore
Choose a license
MIT License
를 많이 사용합니다.Important of Capitalize
와 같이 가독성을 위해 대문자를 적절히 사용prefix | 의미 |
---|---|
feat | 기능 개발 관련 |
fix | 오류 개선 혹은 버그 패치 |
docs | 문서화 작업 |
test | test 관련 |
conf | 환경설정 관련 |
build | 빌드 관련 |
ci | Continuous Integration |
refactor | 코드 리팩토링(코드의 결과물은 동일하고 구조 등이 수정되었을 경우 등) |
prefix: subject
body
footer
status
$ git status
추적상태를 출력해줍니다.
add
$ git add 파일경로
해당 파일을 스테이지에 올립니다(commit을 작성하기 이전에 관련된 파일들을 설정)
git add .
을 통해 변경된(추적되지 않은) 모든 파일을 스테이지에 올리고 commit을 작성할 수 있습니다. 그러나, (최소한으로 동작하는) 기능의 단위로 commit을 작성한다는 취지와는 어긋날 수 있습니다. 그래서, 관련된 파일을 직접 지정해서 add하고 commit을 작성하는 것이 올바른 습관이라고 할 수 있습니다.
add 할 때 CRLF 관련 경고(warning) 메시지가 출력될 경우
운영체제에서 개행문자를 처리하는 방식이 다름에서 오는 경고이며, 그냥 사용하셔도 동작은 되지만, 해결하고 싶으신 경우는
https://www.lesstif.com/gitbook/git-crlf-20776404.html 참고해보시는 것이 좋을 것 같습니다.
commit
$ git commit
-m
플래그(옵션)은 가급적이면 사용하지 않는 것을 권장합니다.git commit -m "메시지"
로 작업할 경우 git commit 명령을 통해 생성되는 기본적인 내용을 무시하고 지정한 메시지가 강제로 적용되어 작성됩니다(기본적인 내용이더라도 유용한 정보들이 요약되어 작성되있는 경우가 있습니다). 그래서, git commit
=> 제목, 내용 직접 작성
의 흐름으로 git을 사용하는 것이 올바른 습관이라고 할 수 있습니다.log
push
$ git push {원격저장소 별칭} {브랜치 이름}
git push origin main
작성한 commit들을 origin(별명, alias)으로 설정한 원격저장소의 main 브랜치에 보냅니다.
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
정책이 변경되어서 패스워드 인증대신에 token을 발급하고 사용해야 됩니다.
unable to acess 'https://github.com/아이디/저장소.git':The requested URL returned error: 403 (403에러)
github에 최초로 등록한 계정과 현재 push하는 계정(환경설정에서 설정한 계정)이 달라 해당 저장소에 접근 권한이 없어서 나타나는 에러입니다.
git remote set-url
로 Remote URL 변경하기.gitignore를 사용하는 이유
npm i
를 통해 의존 라이브러리(사용되는 라이브러리)를 모두 설치할 수 있기때문에 실제 라이브러리 파일들이 저장되는 공간인 node_modules가 github에 올라가지 않아도 됩니다. node_modules는 용량을 많이 차지하는 편이기 때문에 사이즈를 줄이기 위해서라도 git에서 무시하도록 설정하는 것이 좋습니다..env
와 같이 IDE
(e.g. VSCode, WebStorm, ...)상에서 노출되어서 않되는 값들을 설정한 경우 git에서 무시하도록 설정해야합니다.( github 등의 원격저장소에 업로드 되고, 일반 사용자들이 해당 값을 본다면 ... ?)