git

Git 사용법

임이레 2023. 2. 1. 19:31

* git으로 몇달간 헤메고 있는 나를 위한 정리.. (feat. 해창님) 

 

1. GIT 이란? 

: 협업도구, 소스의 버전관리 (형상관리) tool , 무료 소스 관리 시스템이다.

git 을 활용하여, 로컬에서 자신의 개발 source에 대한 섬세한 관리가 가능하며, Remote Repository(원격 저장소) 에 영구적인 백업과 ,다양한 협업이 가능하도록 지원하는 기능을 말한다.

 

2. GIT 구조

: GIT 은 자신의 Local에 있는 소스코드를 관리할때에도 사용하며, Remote하여 Gitlab이나  Github 계정에 할당 된 서버 공간에 저장하며 협업하기 위해서도 사용한다. 

 

3. Repository 

: 저장소 (Git repository) 란 말 그대로 파일이나 폴더를 저장해 두는 곳이다. 

 

Git 은 원격저장소와 로컬 저장소 두 종류의 저장소(Repository)를 제공한다. 

 

- 원격 저장소 (Remote Repository) : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소.

- 로컬 저장소 (Local Repository) : 내 PC에 파일이 저장되는 개인 전용 저장소.

 

4. Staging Area 

: 변경 이력을 저장할 때에는 총 3가지 영역을 바탕으로 작동한다.

 

- Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리

- Staging Area : commit 을 하기 위해 git add 명령어로 추가한 파일들이 모여있는 공간 

- Reporitory : commit 들이 모여있는 저장소 

 

스테이징 영역은 작업 디렉토리와 git 저장소의 변경 이력 사이에 징검다리 역할을 한다.

작업 디렉토리(Working Directory)는 아직 commit할 준비가 안된 변경 내용을 자유롭게 수정할 수 있는 공간인 반면에 , 스테이징 영역(Staging Area) 은 commit 할 준비가 된 변경 내용이 Git 저장소에 저장되기 전에 대기하는 장소라고 생각할 수 있다. 

 

git add 명령어를 사용하면 현재 작업 디렉토리에 있는 모든 또는 일부 변경 내용을 스테이징 영역으로 이동시킬 수 있고 Staging Area 에 추가한 파일들을 Commit 을 한다면 최종적으로 저장소(Repository)로 저장되게 된다.

 

5. GIT ADD 

git add 는 작업 디렉토리(Working directory) 상의 변경 내용을 스테이징 영역 (Staging Area) 에 추가하기 위해서 사용하는 Git 명령어이다.

 

git add 명령어는 다음 변경(commit)을 기록할 때까지 변경분을 모아놓기 위해서 사용한다.

따라서, git commit 명령어를 통해 명시적으로 기록을 남기기 전까지는 아무리 git add 명령어를 많이 실행해도 GIT 저장소의 변경 이력에는 어떠한 영향도 줄 수 없다.

 

 

6. GIT STATUS 

git add 명령어를 사용할 때 , 항상 함께 사용하게 되는 명령어가 git status 이다. git status 명령어는 작업 디렉토리(working directory) 와 스테이징 영역(staging Area) 의 상태를 확인하기 위해서 사용한다. 

File Status LifeCycle

- Untracked : Working Directory 에 있는 파일이지만 Git 으로 버전관리를 하지 않는 상태.
- Unmodified : 신규로 파일이 추가되었을 때 , new file 의 상태와 같다.( git add 상태 )
- Modified : 파일이 추가된 이후 해당 파일이 수정되었을 때의 상태.
- Staged : Staging Area에 반영된 상태.

 

7. Git Commit 

: git commit 은 스테이징 영역(Staging Area) 에 있는 변경 사항을 저장소에 기록하고 남기기 위해 사용하는 명령어

 

이전 commit 상태부터 현재 스테이징 영역(Staging Area)에 있는 상태까지의 변경 이력이 기록된 commit이 생성되고 사건순으로 저장된다. 최근 commit q부터 거슬러 올라가면 과거 변경 이력과 내용을 확인할 수 있다. 

 

commit은 이력을 남기는 작업이기 때문에 commit 시에는 commit message 를 필수로 입력해야 하고 message가 없으면 Commit 이 실행되지 않는다.

 

8. Git Log 

: git log 명령어를 실행하면 commit 을 언제 어떤 메시지로 했는지 볼 수가 있다. 돌아가고 싶은 commit 이 있을 때 log 에 찍힌 commit의 고유값으로 돌아갈 수가 있다.

 

9. Git Push 

: git push 는 로컬 정장소(Local Repository)에서 만든 commit 을 원격 저장소(Remote Repository)로 밀어넣는 (Push) 명령어.

 

< git push information >
: 명령은 두 개의 인수를 사용한다
 e.g git push origin main 
 - 원격 이름 e.g origin
 - 분기 이름 e.g. main 

로컬 저장소 (Local Repository)에 변경 내용을 원격 저장소(Remote Repository)에 push 하려면 일반적으로 git push origin main (git push REMOTE-NAME BRANCH-NAME)을 실행한다. 

 

10. Pull Requests 

- pull Requests 란?

- Pull Requests 를 하는 이유.

 

: 코드의 작업이 완료되면 , github Repository(origin)d에 add, commit , push 를 합니다.

: push할 때 , 브랜치의 수정 및 추가 내역을 origin 으로 push 합니다.

 

1) Pull Requests 생성

진행하고 있는 project의 github page

상단 네비게이션 바에 Pull Requests를 클릭하여 New Pull Request 버튼으로 생성할 수 있습니다.

2) Pull Requests 할 branch 를 지정.

- (오른쪽) compare에는 merge를 진행 할 수정 및 추가 작업을 한 branch를 선택.

- (왼쪽) base는 merge를 진행해야 할 브랜치를 지정.

 - 그 후 View pull request 버튼을 클릭.

 

3) Pull Requests 내용 및 리뷰어, 코드 작성자 지정 및 생성 

- View pull Request 버튼을 클릭하게 되면 상세 내용을 작성하는 페이지로 넘어간다.

- 해당 페이지에서는 코드 수정 및 추가 작업한 사항에 대하여 제목, 및 내용을 작성

- Reviewers 는 해당 코드를 리뷰 진행해 줄 팀원을 지정

- Assignees 는 해당 코드를 작성한 (자기 자신)을 지정

- 그 후 생성을 진행하면 리뷰어에게 PR 에 관한 알림이 가며 코드 리뷰를 진행 및 검토 하게 된다.

- 코드 리뷰 진행 및 검토가 완료되면 그 다음 merge가 된다. 

 

 

 

 

 

* 스터디 팀원이 작성한 내용을 참고하여 올렸습니다.