카테고리 없음

백지부터 시작하는 Git & Github(2) - Git 설정하기

sungw00 2022. 9. 28. 18:32
728x90

전제조건: Git에서는 책임성을 유지하기 위해 커밋한 사람의 이메일과 이름이 반드시 필요하다. 해당 설정 파일에 대한 정보는 아래 경로에 위치하게 된다.

[설정 파일 위치]
1. 시스템 전역 경로
2. USER_HOME/.gitconfig (사용자 디렉터리)
3. 로컬저장소 디렉토리 경로 /XXX/.git/config
3 -> 2 -> 1 순으로 우선순위에 따라 아래 경로를 우선으로 참조해서 커밋 작업을 진행하게 된다.

사진과 같이 .gitconfig 파일은 사용자 디렉터리에 숨김 파일로 위치해있다.

사용자 정보가 없다면 Commit이나 Push 등을 할 수 없다.

git config 이름, 이메일 설정

위 명령어와 같이 입력해주면 이름과 이메일 설정을 완료할 수 있다.

실제로 설정된 파일을 확인해보면 아래 이미지와 같이 확인할 수 있다.

git config 설정 완료

사용자 정보 입력하기

1. 먼저 $ git init 명령어를 입력하여 저장소를 초기화한다. (입력 후 출력되는 메시지는 위 사진과 다를 수 있다.)

 

2. 이후에 $ ls -al 명령어로 숨김 파일을 포함하여 파일 목록을 조회하면 .git 디렉토리가 생성된 것을 확인할 수 있다.

3. .git 디렉토리에 들어가서 다시 $ ls -al 명령어로 조회하면 다양한 파일들이 있는 것을 볼 수 있는데, 먼저 사용자 이름을 추가해보자

4. 아래와 같이 $ git config user.name [원하는 사용자 이름] 을 입력한 후 $ cat config 명령어로 내용을 확인하면 아래와 같이 직접 그 파일에 내용을 입력하지 않아도 명령어만으로 입력이 된 것을 확인할 수 있다.

 

Git Workflow

Init: 깃 레포지토리 초기화

Status: 깃 레포지토리 현 상태 조회

Add: 로컬저장소의 파일을 스테이징영역으로 추가

Commit: 스테이징영역의 파일들을 원격저장소에 추가

Log: 이전에 작성한 커밋이나 파일의 변경 이력을 추적

Diff: 이전 커밋과 현재 커밋을 비교하거나 특정 두개의 커밋을 비교

Branch: 개발을 병렬적으로 진행하기 위해 필수적으로 필요

Tag: 브랜치와 유사하지만 브랜치는 마지막 변경을 추적하지만 특정 시점의 버전은 태깅처리를 함

Checkout: 브랜치 이동, 특정 파일 내려받는 명령

Merge: 병렬적으로 진행한 브랜치를 하나의 브랜치로 병합

 

Init

- 현재 디렉토리를 Git 레포지토리로 설정하는 명령

- 사용자는 .git 디렉토리를 관리할 필요가 없고 명령어를 통해 접근 조회 수정할 수 있음

 

Init 후 꼭 해야할 ignore 설정

Git 레포지토리에서 관리해야 할 파일은 무엇일까? 바로 프로젝트와 관련된 모든 파일이다.

모든 파일을 같이 관리하지 않는 경우에 만약 프로젝트 특정 웹페이지에서 필요한 이미지 파일인데, 이 파일을 따로 관리하게 되면 버전 변경 후 이미지 파일이 변경되지 않는다면 버그가 생기게 될 수 있기 때문에 버전관리가 되지 않고 오류가 생기는 상황이 발생될 수 있다.

 

레포지토리 생성 후 OS가 생성하는 파일(맥같은 경우 DS_Store, 윈도우에서는 Thumbs 등)이 있는 경우 거슬리게 된다. 삭제하고 커밋하거나 할 때 변경이력이 추가되기 때문에 간과할 수 없다. 그리고 만약 사용자가 이클립스 아이디를 사용하게 되면 setting 디렉토리가 포함되어 있는데 이 디렉토리를 사용하지 않는 사용자가 이 파일이 커밋되게 되면 원하지 않는 결과를 초래할 수 있게 되기 때문에 이러한 파일이 커밋되는 것을 막아야 한다. 이러한 작업을 아래에서 소개하는 과정을 통해 함께 작업하는 사용자들이 편리하게 작업할 수 있다.

 

1. 먼저 대상 디렉토리에 들어가서 $ vi .gitignore 을 입력하여 해당 파일을 생성함과 동시에 내용을 입력한다.

2. 다음 사진과 같이 이력 추적을 피할 파일의 이름이나 확장자 또는 디렉토리명 등을 기재하여 저장 후 나간다('i' 키를 눌러 내용 입력 후 'esc' 키를 누르고 'wq' 입력 후 엔터)

3. $ cat .gitignore 로 입력한 내용을 확인한다.

4. 다음 사진은 시험용으로 .DS_Store 라는 파일을 만들어보고, "test"라는 단어가 입력된 test.html 파일을 만들고 확인하는 과정이다.

5. $ git status 명령으로 저장소 상태를 확인해보면 위에서 설정한 대로 .DS_Store 파일은 추적을 피하게 되고 결과적으로 test.html 파일만 나타나는 것을 볼 수 있다.

 

728x90