[Day 28] Git(1)
Git (1)
Git Process and Command
-
workspace
-
작업영역에서
git init
을 하면 가상공간인 index(stage)와 local repository가 생성된다. -
git add
를 통해 임시 공간인 index(stage)에 변경 사항을 저장해 놓는다.
-
-
index(stage)
- 변경된 부분만 stage에 올린다.
-
local repository
-
git commit
을 통해 stage에 올려진 변경사항에 labeling을 해서 저장된다. -
모든 commit은 local repository에 저장된다.
-
-
remote repository
git push
를 하면 github, gitlab, bitbucket 등의 원격 저장소에 저장된다.
Git 시작하기
-
workspace folder name과 remote repository name은 똑같이 맞춰주는게 헷갈리지 않고 좋다.
-
Git 환경설정
- 설정 목록 보기
git config --list
- 기본 에디터 설정
git config --global core.editor "vim"
- 설정 목록 보기
.gitignore
- Git이 볼 필요가 없는 파일을 정리해둔다.
- Node 에서 주로 사용된다. (node_modules 폴더를 git에 올릴 필요가 없기 때문에)
Commit
- 커밋은 각 작업(또는 파일) 별로 나눠서 하는 것이 좋다. (버전관리를 위해)
- 커밋메시지는 첫 줄에 제목, 이후 문장 형태로 설명해주는 것이 좋다.
Branch
- 분기점을 생성하고 독립적으로 코드를 변경할 수 있도록 도와주는 모델
- 브랜치 확인
git branch
git branch -r
git branch -a
- 브랜치 생성
git branch stem
(stem은 새로 만들 브랜치 이름)
- checkout
git checkout stem
- 시간/공간 이동 : 내가 원하는 시점의 브랜치 또는 위치로 가기
- 과거의 특정 시점으로 이동하고 싶다면 commit id를 github에서 복사해온 다음에 git checkout + commit id (다만, 새로운 브랜치를 따서 수행해야 한다)
git checkout -b new-stem
- 새로운 브랜치를 만들면서 동시에 그곳으로 이동한다.
- merge
git merge stem
- 합쳐질 위치에서 가져올 브랜치 이름을 머지해준다.
- 브랜치 삭제
git branch -D stem
- 브랜치 푸쉬
git push origin stem
- 두 브랜치 간의 차이 보기
git diff master stem
- remote repo -> Insights -> Network 에 가면 전체 브랜치 가지 모양을 확인할 수 있다.
Git Flow Strategy
- Hotfix : 긴급하게 master branch에 수정이 필요할 때 쓰는 브랜치
- Realease : master 로 최종적으로 보내지기 전에 후처리를 하는 브랜치
- Develop : 개발자들이 실제 개발용으로 쓰기 위해 master branch에서 따온 브랜치
- Feature : 개발자들이 Develop branch에서 따와서 실제로 기능 개발을 진행하는 브랜치
Merge Conflict
git merge branchname
할 때 merge conflict가 발생한다면- 해당 파일에 들어가면 conflict가 발생한 부분이 둘 다 적혀 있다.
- 이 중 선택해서 합치거나 수정한다.
Collaboration
- 레포 만들기 -> master, develop(무언가 일을 한 뒤 푸시 해야 리모트가 알 수 있다.)
- 상대방 레포 방문한 뒤, 포크 -> 클론
- 포크, 클론 한 local workspace에 branch가 일부 안생겼다면 local에서 강제로 branch를 딴 뒤 remote branch를 pull 해오면 내용이 똑같아 진다.
git pull origin develop
- 디벨롭에서 피처 브랜치를 따서 작업하기 -> 푸시(피처) -> (디벨롭)에서 (피처)를 머지 -> 푸시(디벨롭)
- 깃헙 -> 디벨롭 => 디벨롭 -> 풀 리퀘스트 만들기
- 그 저장소로 이동해서 간단한 내용에 대한 코멘트 남기기
- 원작자가 풀리퀘스트를 머지한다.
댓글남기기