개발환경, 도구/Git

git 기초 정리

gu9gu 2023. 4. 16. 23:39

git이란

버전 관리 시스템으로써 코드의 수정 사항을 관리하고 각 수정 사항들에 대해서 공유, 병합, 특정 시점으로 복원하는 등의 기능이 있기 때문에 프로젝트 진행 시 생성성을 높이기 위해 사용합니다.

 

1. git repository로 만들기

1-1. 작업하던 프로젝트롤 git repository로 지정하고 git 원격 저장소와 연결

git init : 새로운 git 저장소를 생성, .git 티렉토리 생성, .git 디렉토리는 해당 디렉토리를 버전 관리하는데 필요한 정보가 저장되는 곳

git remote : git 원격 저장소와 연결

 

1-2. 원격저장소의 프로젝트를 받아와서 git repository로 만들기

git clone

 

2. 소스 코드 수정 후 원격 저장소에 올리기

git add : git Stage 영역에 추가해서 git이 추적 할 수 있게 하는 명령어

git commit : stage 영역에 추가된 파일을 local 저장소에 커밋하는 명령어

git push : git local 저장소에 저장된 파일을 원격 저장소로 업로드하는 명령어

 

3. git branch

branch란 독립적으로 작업을 수행하기 위한 개념입니다.

git branch 명령어 수행하여 별도 작업 공간을 만들고 작업을 완료한 뒤에는 git merge를 통해서 하나의 브랜치로 병합할 수 있습니다.

 

4. git reset vs git revert

[Git] reset과 revert 알고 사용하기 (velog.io)

 

4-1) git reset

특정 시점으로 되돌아가는데, 특정 시점 이후의 커밋 히스토리는 다 지우면서 돌아가는 명령어입니다.

따라서, 협업 시에는 사용하지 않는 것이 좋습니다. git reset으로 특정 시점 이후의 히스토리를 다 지운 채로 원격 히스토리에 업로드 하면 다른 사람 코드와 컨플릭트가 날 수 있기 때문입니다.

 

4-2) git revert

특정 시점으로 되돌아가는데, 새로운 커밋을 하면서 과거로 되돌아가는 명령어입니다.

히스토리에 이력이 다 남아서 깔끔하지 않지만 협업 시에는 reset보다 revert를 사용하는게 적합합니다.

 

5. conflict

5-1) git pull origin main

로컬에서 수정 후 원격 저장소에서 pull을 하면 conflict가 난다.

[Git] Pull에서 충돌 해결하기 :: PlanB의 백엔드 엔지니어링 (tistory.com)

 

5-2) git merge

==> 충돌이 난 경우 충돌을 수정한 후에 다시 add 하고 commit 하고 push

 

6. git stash

수정된 파일을 임시 백업하는 명령어입니다.

예를 들면 브랜치 변경시에 수정된 파일이 있으면 브랜치 변경이 안 돼기 때문에 git stash로 임시 백업을 한 뒤 브랜치 변경을 할 수 있습니다.

 

7. add, commit, push 취소 하기

[GIT] ⚡️ git add / commit / push 취소하기 💯 정리 (tistory.com)

git reset 

 

 

8.git rebase

[Git] Git Rebase란? (feat. git-flow 히스토리를 더 이쁘게 만들기) — SH's Devlog (tistory.com)

 

 

9. pull request

다는 다른 사용자가 작성한 브랜치를 병합하기 위한 요청을 보내는 기능

 

10. git flow 전략

master, develop, feature, release, hotfix 브랜치를 사용하는 브랜치 전략 입니다.

각 브랜치의 목적과 역할이 명확해져 협업할 때 충돌을 최소화 하면서 작업할 수 있어서 사용합니다.