버전 관리란?
버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
Git이란?
분산형 버전 관리 시스템(Version Control System) 의 한 종류이며, 빠른 수행 속도에 중점을 둔다.
Git 기본 용어
Git을 사용하기 위해 알아야 할 용어 몇가지가 있다.
- Repository: 저장소를 의미하며,저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다.
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치.
- Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
- Head : 현재 작업중인 Branch를 가리킨다.
- Branch : 가지 또는 분기점을 의미하며, 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다.
- Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.
Git은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리한다.
- Committed란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
- Modified는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.
- Staged란 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
1. 설치 파일 다운로드
Windows 에서 Git을 사용하기 위해 GitBash를 설치한다. (작성일 기준 2.35.1버전)
아래 공식 홈페이지에서 GitBash 설치 파일을 다운로드 한다.
2. 약관 동의
Git Bahs에 대한 정보 및 라이센스에 대한 내용이다.
3. 컴포넌트 선택
이후 Next> 버튼을 클릭하여 다운로드를 완료한다.
설치 후 Git Bash에서 아래 명령어로 테스트한다.
$ git --version
Git 환경설정
다음의 명령어로 기본 정보를 읽는다.
git config --list
다음의 명령어로 이름과 이메일을 설정한다. (필수)
깃헙 계정과는 별개로 이 깃을 사람들과 협업할 때 어떤 작업을 누가 했고, 어떻게 연락할 수 있는지 알 수 있고, 이를 설정하기 않으면 제한되는 부분이 있을 수 있다.
--global 키워드는 전역 설정으로 내 컴퓨터에 전반적으로 깃의 기본 설정으로 세팅한다는 것이다.
(단, 프로젝트마다 설정을 다르게 설정할 수도 있음)
이름과 이메일 설정 명령어
git config --global user.name "Name"
git config --global user.email "E-mail Address"
이름과 이메일 확인 명령어
git config --global user.name
git config --global user.email
기본 브랜치명 변경
프로그래밍에서 master, slave 용어들이 쓰인다. 깃도 기본 브랜치 이름이 master이다.
하지만 용어의 의미를 보면 주인, 하인 느낌으로 부정적이기 때문에 깃의 경우 기본 브랜치를 master에서 main으로 변경하는 것을 권장한다.
아래의 명령어로 git에서 기본 브랜치의 명칭을 master에서 main으로 변경하면서 생기는 오류를 방지할 수 있다.
git config --global init.defaultBranch main
프로젝트 생성 & Git 관리 시작
원하는 위치에 폴더를 생성한다.
VSCode에서 진행하는 프로젝트를 예시로 진행한다.
VSCode를 실행하여 ctrl + shift + p > Terminal: Select Dafault Profile 에서 Git bash 선택 후 아래 터미널에서 bash 셸 선택 후 다음 명령어 실행
$ git init
파일탐색기로 가서 해당 파일로 들어간다.
파일 옵션을 변경하여 숨김 파일을 모두 볼 수 있게 설정한다.
설정을 변경하면 해당 파일에 .git이라는 폴더가 생성되어 있는 것을 확인할 수 있다.
이 폴더를 지우게 되면 Git 관리내역이 모두 삭제되어 과거의 내역들로 돌아갈 수 없게 된다.
VSCode에서 새로움 파일을 생성하고 저장한다.
그리고 VSCode의 bash 터미널에서 다음 명령어를 수행한다.
현재 폴더의 상황을 깃의 관점에서 변경된 부분을 보여준다.
$ git status
Git의 관리에서 특정 파일/폴더를 배제해야 할 경우
a. 포함할 필요가 없을 때
- 자동으로 생성 또는 다운로드되는 파일들 (빌드 결과물, 라이브러리)
b. 포함하지 말아야 할 때
- 보안상 민감한 정보를 담은 파일
.gitignore 파일을 사용해서 배제할 요소들을 지정할 수 있습니다.
.gitignore 사용해보기
폴더에 아래 파일 생성
secrets.yaml
id: admin
pw: 1234abcd
아래 명령어로 상태 확인
git status
>>
Untracked files: (use "git add <file>..." to include in what will be committed)
lions.yaml
secrets.yaml
tigers.yaml
nothing added to commit but untracked files present (use "git add" to track)
git status 로 확인 후 깃에 반영하고 싶지 않은 파일이 있다면,
.gitignore 파일 생성하고, 반영하고 싶지 않은 파일을 .gitignore파일 내부에 타이핑해준다.
secrets.yaml
다시 상태 확인
git status
>>
Untracked files: (use "git add <file>..." to include in what will be committed)
.gitignore
lions.yaml
tigers.yaml
nothing added to commit but untracked files present (use "git add" to track)
더이상 git은 secrets.yaml 파일을 바라보지 못 하게 된다.
따라서 프로젝트에서 무시해도 되는 파일들은 .gitignore에 들어가 있다.
# 이렇게 #를 사용해서 주석
# 모든
file.c file.c
# 최상위 폴더의file.c
/file.c
# 모든 .c 확장자 파일
*.c
# .c 확장자지만 무시하지 않을 파일
!not_ignore_this.c
# logs란 이름의 파일 또는 폴더와 그 내용들
logs
# logs란 이름의 폴더와 그 내용들
logs/
# logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c
# logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log
'Git' 카테고리의 다른 글
[Git] GitHub Repository 합치기 (0) | 2022.06.05 |
---|---|
[Github] VScode와 Github 레포지토리 연결 (0) | 2022.04.12 |
[Git] branch | branch 다루기 (0) | 2022.03.14 |
[Git] 과거 내역으로 돌아가는 방법 (0) | 2022.03.14 |
[Git] 프로젝트 변경 사항들을 버전에 담기 (0) | 2022.03.14 |
댓글