[Git] 구조와 사용법 소개
1. Structure
1) Working Directory: 작업하는 공간
- tracked files: git이 인지하고 있는 파일
- untracked files: git이 인지하지 못한 파일
2) Staging Area: 저장소에 업데이트하려는 모든 변경사항을 모아두는 곳
3) Local Repository: 개인 PC에 저장되는 저장소
4) Remote Repository: 다른 개발자와 공유하는 저장소
- github repository
2. Basic Process
1) 로컬 저장소 생성
: 중앙 원격 저장소(remote repository)를 복제하여 자신의 로컬 저장소(local repository) 생성
- 현재 디렉터리를 빈 Git 저장소로 만들기
$ git init
- 현재 작업 중인 Git 저장소에 중앙 원격 저장소 추가 (이름은 URL 대신 origin으로 사용)
$ git remote add origin [remote repository URL]
- 중앙 원격 저장소(origin)의 master 브랜치 데이터를 로컬에 가져오는 작업
$ git fetch origin master
=> 원격 저장소를 복제한 로컬 저장소 생성 (위 명령을 모두 포함)
$ git clone [remote respository URL]
2) 새로운 기능 개발을 위한 브랜치 생성
: 로컬 저장소에서 새로운 브랜치를 생성한 후, 작업을 수행하고 변경 내용을 커밋한다.
- 새로운 브랜치 생성
$ git branch [branch name]
- 브랜치 이동(HEAD 포인터 이동)
$ git checkout [branch name]
=> 브랜치 생성 후, 이동 (위 명령을 모두 포함)
$ git checkout -b [branch-name]
- ex.
develop
에서feat/PC-001
로 분기된 계층적 브랜치 구조 만들기
$ git checkout develop // develop 브랜치로 이동
$ git branch -b feat/PC-001 // feat 폴더의 PC-001 브랜치 생성 후, 이동
- 브랜치 확인하기
$ git branch // 로컬 브랜치 목록
$ git branch -r // 원격 브랜치 목록
$ git branch -a // 모든 브랜치 목록
3) 작업한 파일을 커밋한 후, 해당 브랜치를 원격 저장소에 푸시
: 로컬 저장소에서 작업한 새로운 기능의 브랜치를 중앙 원격 저장소에 푸시한다.
1-a. 변경된 모든 파일을 스테이징 영역에 추가
$ git add .
1-b. 변경된 특정 파일을 스테이징 영역에 추가
$ git add [file-name]
- 로컬 저장소에 변경사항 반영하기(commit) (staging -> local)
$ git commit -m "commit message"
=> 변경된 모든 내용을 로컬 저장소에 반영하기(commit) (위 명령을 모두 포함)
$ git commit -a -m "commit message"
- 원격 저장소에 커밋 공유하기 (local -> remote)
(origin에 동일한 이름의 브랜치 복제)$ git push origin feat/PC-001
+) git status
, git log
를 통해 확인하는 습관 중요
4) 작업한 내용에 대한 PR(Pull Request) 요청하기
: 원격 저장소에 푸시한 작업한 브랜치를 origin
에 병합(merge)을 요청하는 것
- PR이 승인된 경우 원격 저장소에 병합
- 병합 방식에 따라 상이 (
merge
,rebase
, ...)
5) 로컬 저장소를 원격 저장소와 동기화 하기
: 다른 개발자에 의해 변경된 원격 저장소의 코드 베이스를 동기화 한다.
- 새로운 작업을 시작할 때, 항상 로컬 저장소를 최신 상태로 만들어야 한다.
1. master(develop) 브랜치로 이동
$ git checkout develop
2. 원격 저장소의 변경사항 반영하기
2-1. pull 이용: 변경사항 가져온 후, 병합
$ git pull origin develop
2-2. fetch 이용: 변경사항 가져오기만, 병합은 별도 처리
-pull
을 통한 자동 병합 대신,fetch
후 수동 병합 사용 권장 !$ git fetch --all // 원격 저장소로부터 변경사항 가져오기 $ git rebase origin/develop // rebase 방식으로 병합하기
Author And Source
이 문제에 관하여([Git] 구조와 사용법 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hahaha/Git-구조와-사용법-소개저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)