본문 바로가기

Server Development/Cloud

Git Basic

 

 

 

이번 포스트에서는 Git 사용에 대한 전체적인 기본 개념들에 대해서 정리해보고자 한다.

 

 

 

 

1. GIt 저장소 생성

깃허브를 사용하기 위해서는 기본적으로 회원가입을하고 저장소를 생성한다.

 

 

기초 용어

- Repository Name : 저장소 이름

- Description : 저장소 설명

- Public/Private : 오픈소스로 설정할 것인지, 공개하지 않을 것인지 설정

- README : 저장소 상세 설명

- .gitignore : 올리지 않을 파일 설정

- license : 해당 저장소의 라이센스 -> 해당 오픈소스 사용시 자신의 저작물 또한 공개할지 안할지 등을 결정한다.

 

이 후, 깃을 내 컴퓨터에 설치해 git 명령어를 사용하게 설정을하면 기본적인 세팅이 끝난다.

 

 

추가용어 정리

컨트리뷰터 : 해당 저장소의 수정이나 번역 등 기여를 하는 사람

커미터 : 해당 저장소의 기여한 내용을 반영할지 안할지를 결정하는 사람

 

 

 

2. Git의 장점 

- 분산적인 개발 : 깃의 코드들을 각 개발자 로컬의 복사가 가능하며 나중에 수정된 내용을 합치는 것 또한 가능하다.

- 변경 이력 저장 : 이전의 작업된 내용도 확인할 수 있어 안전

- 비선형적인 환경 : 브랜치를 제공하여 코드 변경 등에 대한 충돌을 최소화

 

 

 

3. Git의 동작 원리

 

Git 프로젝트 구성 요소

- Working Directory : 실제 작업하는 파일들이 저장되어 있는 디렉토리

- Staging Area : 커밋을 수행할 파일들이 올라가 있는 영역

- Local or Git Directory : Git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리 (.git 폴더)

 

 

Git 동작 과정

Working Directory->(git add)->Staging Area->(git commit)->Local Repository->(git push)->Remote Repository

Remote Repository->(git fetch)->Local Repository->(git merge)->Working Directory

 

(+) git fetch + git merge = git pull

 

 

Git의 Contribute

- 관리자 : Commit + Push

- 관리자 아닌 경우 : PR(Pull Request)

 

 

 

4. Git 명령어

git --version : 버전 확인

git config --global user.name : 유저 이름 설정

git config --global user.email : 유저 이메일 설정

git config --list : 유저 설정 내용 확인

git clone 사이트명 : 해당 저장소 컴퓨터에 다운로드

git add 파일명.확장자 : 해당 파일을 올릴 것임을 설정

git commit -m "메시지" : 파일을 올릴 때 같이 올릴 메시지 설정

git push : 업로드

git status : 변경된 파일들의 상태 확인

git reset 파일명.확장자 : Staging Area에 올라가있는 파일 다시 내림

git checkout -- 파일명.확장자 : 해당 파일의 변경사항을 무시하고 원상복귀 시킨다.

git commit -- amend : commit 메시지 수정

git log : 커밋 내역 확인

git reset --hard 커밋해시값 : 해당 커밋 시점으로 돌아가며 그 사이의 커밋들은 없애고 코드에도 반영

git push -f : 강제로 해당 로컬 파일과 깃허브 일치

git branch : branch 종류 확인

git branch 새로운 브랜치명 : 새로운 브랜치 생성

git checkout 브랜치명 : 작업 브랜치 변경

git merge 브랜치명 : 해당 브랜치내의 변경 내용을 master에 합침, 그전에 checkout을 통해 master로 작업 브랜치 변경 후 진행

git branch -d 브랜치명 : 해당 브랜치 삭제

git remote : 원격 저장소 확인

git remote show 원격저장소 이름 : 해당 원격 저장소 상세 정보 출력

git remote add 원격저장소이름 사이트명 : 해당 링크를 가진 새로운 원격저장소 연결

git remote - v : 원격저장소 전체 확인

git remote rename 기존이름 변경이름 : 원격저장소 이름 변경 

git log 원격저장소명 : 해당 원격저장소에 대한 로그 확인

git log --stat : 각 커밋마다 변경 라인수 확인

git log -p : 커밋내용 상세 설명

git log --pretty=online : 커밋내용 간단하게 확인

git log --pretty=format:"%h -> %an, %ar : %s" --graph : 커밋내역을 형식을 정해서 그래프와 함께 출력가능

git archive --format=zip 브랜치명 -o 파일명.zip : 해당 브랜치의 .git 폴더등을 제외한 소스코드들만 압축해서 지정한 이름으로 저장

git rebase -i 커밋번호 : 해당 커밋 내용 수정 이 후, pick을 원하는 명령어로 수정 후 작업 진행, 커밋 삭제시 내용도 삭제 됨.

 

 

 

 

 

5. Branch 

- 동시에 여러 개발자들이 협업을 하는데 있어서 편리함을 제공하는 도구

- Master Branch : 배포를 위한 브랜치로 기본이 되는 브랜치이며 안정화가 요구 되는 공간

- 통합 브랜치 : Master Branch 를 의미

- 토픽 브랜치 : Master Banch 이외의 공간을 의미

 

 

기본적인 브랜치 사용 merge 과정

1. 새로운 git branch 생성 : git branch 브랜치명

2. 브랜치 변경 : git checkout 브랜치명

3. 작업 수행

4. git add . 또는 파일명

5. git commit -m "메시지"

6. git checkout master

7. git merge 브랜치명

6. git push

7. 새로운 브랜치 삭제 : git branch -d 브랜치명

 

 

 

충돌 발생시 대처방법

- 하나의 파일에 대해서 두개이상의 브랜치에서 수정작업을 진행할 때 충돌을 대비

- 또한 수정과정을 거친 브랜치와 메인브랜치가 다른경우도 존재하는데 이는 수동으로 수정후 처리한다.

- 수동으로 코드 수정 -> git add . -> git commit -> git merge 브랜치명 -> git log 시 한 화면에 나오면 성공 -> 브랜치 삭제

-> git push

 

 

 

 

 

'Server Development > Cloud' 카테고리의 다른 글

Git Branch 전략  (0) 2023.09.27
Docker Basic  (0) 2023.08.14
CI/CD  (0) 2023.07.10
Cloud - IaaS vs PaaS vs SaaS  (0) 2023.04.17