
여기에서는 가장 많이 이용하는 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 버튼 클릭
* 표시된 항목은 필수 입력 항목입니다.OwnerRepository nameDescriptionPublic, PrivatePublic)할지 비공개(Private)로 할 것인지를 설정합니다. Private repository의 경우 추가로 비용을 지불하지 않을 경우 제약사항이 있을 수 있으니 Public으로 사용하는 것을 권장합니다.Add a README filecreate react app(CRA)과 같이 자동으로 README.md파일을 생성하는 라이브러리와 같이 사용한다면, 서로 충돌이 발생(github에서 생성한 README.md, CRA에서 생성한 README.md - 둘 다 루트경로에 생성하기 때문에 동일한 위치)할 수 있습니다.Add .gitignoreChoose a licenseMIT 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을 사용하는 것이 올바른 습관이라고 할 수 있습니다.logpush$ 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 등의 원격저장소에 업로드 되고, 일반 사용자들이 해당 값을 본다면 ... ?)