코드 관리를 용이하게 해주는 git (형상관리시스템, 버전 관리시스템 이라고도 함)에 대해 간단히 알아보겠습니다.
git이란 무엇일까?
들어가기 전에 일단 버전 관리가 무엇인지 예시로 간략하게 알아봅시다.
RPG 게임을 예를 들면, 한 캐릭터로 게임을 진행하다가 게임을 종료하기 전에 지금까지 진행한 게임 데이터를 저장을 하죠? 그리고 나중에 저장한 데이터를 불러와서 이어서 게임을 할 수가 있습니다. 혹은 파일을 편집하다가 ctrl+z 등으로 수정했던 전 단계로 돌아갈 수 있습니다.
이렇게 자신이 원하는 시점 혹은 버전으로 이동할 수 있게 해주는 것이 버전관리이고, 이를 도와주는 툴을 버전관리시스템 이라고 합니다. ( 형상관리, 형상관리시스템, 형상관리 툴 )
보통 혼자 프로젝트를 진행하면 버전 관리가 나름 용이하겠지만, 여러 명이 함께 한 프로젝트를 진행한다면, 여러 명이 동시에 같은 버전으로 커밋을 하거나, 프로젝트 인원수 혹은 프로젝트 기간이 연장되는 경우도 있을 것입니다. 이렇게 된다면 최종 버전이 무엇인지도 헷갈리고, 결론적으로 버전을 관리하는 게 까다로울 텐데, 이때 관리를 용이하게 해 주기 위해 사용하는 것이 버전 관리이며, 버전 관리시스템입니다.
버전 관리 툴은 GitHub, GitLab, BitBucket 등이 있습니다.
기본 용어
워킹 트리 (working tree)
- 커밋을 체크아웃하면 생성되는 파일과 디렉터리.(작업 폴더에서 [. git] 폴더 (로컬 저장소)를 제외한 나머지 부분.)
- 사용자가 파일과 하위 폴더를 만들고 작업 결과물을 저장하는 곳
로컬 저장소 (local repository)
- Git init 명령으로 생성되는 [. git] 폴더가 로컬 저장소이다.
원격 저장소 (remote repository)
- 로컬 저장소를 업로드하는 곳. (GitHub, BitBucket 등)
Git 저장소
- 일반적으로 Git 명령으로 관리할 수 있는 폴더 전체를 뜻한다.
계정 정보인증
주로
- Github에서 비밀번호를 변경했는데, local git에 저장된 인증정보를 수정하지 않은 경우.
- local git에 인증정보를 저장할 때, 정보를 잘못 입력했을 경우
등의 원인으로 발생하는 오류를 해결할 때 도움이 되었어서 추가 정리를 해봤습니다.
인증 관련 명령어
- git config --local credential.helper
- git config --global credential.helper
- git config --system credential.helper
- git config credential.helper "cache --timeout=30"
- 30초간 아이디 및 패스워드 설정.
- git config credential.helper store
- 인증 방식 store로 변경.
- git config --unset credential.helper
- 옵션 삭제.
- file ~/. git-credentials
- 인증 파일 정보 확인.
- rm ~/. git-credentials
- 인증 파일 삭제.
옵션 설정 관련 명령어
코드의 { }, [ ] 등과 같은 괄호들은 구분이 용이하도록 작성한 것이므로, 괄호는 제거하고 입력하면 됩니다.
- git config --global {옵션명}
- 지정한 전역 옵션의 내용 보기
- git config --global {옵션명} {새로운 값}
- 지정한 전역 옵션의 값을 새로 설정
- git config --global --unset {옵션명}
- 지정한 전역 옵션을 삭제
- git config --local {옵션명}
- 지정한 지역 옵션의 내용 보기
- git config --local {옵션명} {새로운 값}
- 지정한 지역 옵션의 값을 새로 설정
- git config --local --unset {옵션명}
- 지정한 지역 옵션의 값을 삭제
- git config --system {옵션명}
- 지정한 시스템 옵션의 내용 보기
- git config --system {옵션명} {값}
- 지정한 시스템 옵션의 값을 새로 설정
- git config --system --unset {옵션명} {값}
- 지정한 시스템 옵션의 값을 삭제
- git config --list
위에서 local, global, system은 범위를 의미합니다.
(우선순위 = local > global > system)
- local : 특정 저장소.
- global : 특정 사용자.
- system : 시스템의 모든 사용자와 저장소
보통 local과 global을 사용해도 충분하지만,
자신의 원인을 파악한 후에, 적용 범위를 잘 선택해서 진행하면 됩니다.
'dev-ing > git' 카테고리의 다른 글
[Git] Sourcetree git stash (기본 개념, 사용 방법 간단정리) 좋은 커밋 메세지 7가지 규칙 (0) | 2022.10.13 |
---|---|
[Git] Sourcetree git reset, revert 하기 (기본 개념, 사용 방법 간단정리) (0) | 2022.10.07 |
[Git] Sourcetree amend, cherrypick 하기 (기본 개념, 사용 방법) (0) | 2022.10.07 |
[Git] CLI branch 관련 명령어 (branch tagging, HEAD 개념) (1) | 2022.10.07 |
[Git] 커맨드 라인 CLI 기본 명령어 정리 (git log 옵션 명령어) (0) | 2022.10.07 |
댓글