728x90
반응형
1) 영역
- working directory
- 현재 작업하고 있는 공간을 말합니다.
- Git이 관리하고 있지만, 아직 추적( track )하고 있지 않은 상태입니다.
- index
- stage 또는 staging area라고 하며, 준비 공간을 말합니다.
- Git이 추적하고 있으며, 버전으로 등록되기 전 상태입니다.
- repository
- 저장소를 의미합니다.
- 본인 PC에 존재하는 저장소인 local repository
- Github, Gitlab 같은 원격 저장소인 remote repository가 있습니다.
2) Flow
- git init
- .git 폴더를 생성합니다.
- .git 폴더가 있어야 파일을 추적할 수 있으며, Git과 관련된 작업을 할 수 있습니다.
- git add
- working directory의 변경된 작업 파일을 staging area로 추가시킵니다.
- git commit
- staging area의 내용을 local repository에 확정 짓습니다.
- git push
- local repository의 내용을 remote repository로 업로드 합니다.
- git pull
- local repository의 내용을 remote repository에서 가져옵니다.
- git clone
- .git을 포함한 remote repository의 파일들을 local repository에 복사합니다.
- 깃헙에서 zip 파일로 받으면 .git 폴더가 없다는 것이 명령어와의 차이점입니다.
위에서 살펴본 영역과 명령어를 통해 flow를 그려보면 다음과 같습니다.
3) 협업 - 병합
- git branch
- 독립된 working directory를 의미합니다.
- 브랜치를 통해 프로젝트 참여자마다 브랜치를 가져서 독립된 작업 공간을 갖습니다.
- 어떻게 브랜치를 관리할 것인지에 대한 브랜치 전략이라는 것도 있습니다.
- 테스트 및 백업 등의 용도로 사용할 수도 있습니다.
- head
- 포인터를 의미하며, 지금 작업하고 있는 branch를 가르킵니다.
- merge
- 2개의 branch에서 작업한 다른 내용을 하나로 합치는 것을 말하며, 현재 브랜치를 기준으로 병합됩니다.
- 만약 두 branch가 같은 파일의 같은 곳을 수정했다면, 충돌( merge conflict )이 발생해서 이를 해결해야 합니다.
- 해당 이슈 관계자들이 상의하여 수동으로 충돌을 해결해줘야 합니다.
- 따라서 충돌 이슈가 발생하지 않으려면 작업 내용이 겹치지 않도록 분리시키는 것이 좋겠죠.
아래는 협업과 관련된 Flow를 표현해 봤습니다.
기존에는 master 브랜치만 있는데 branch를 생성해서 새로운 working directory가 생성되었고, commit을 한 후 master로 병합( merge )하는 것을 보여줍니다.
- mkdir : MaKeDIRectory
- cd : Change Directory
git.init는 하위 디렉토리를 만들고, git 디렉토리에는 저장소에 필요한 뼈대 파일이 있다.
clone 저장
728x90
'CS > Git, github' 카테고리의 다른 글
README 꾸미기 (1) | 2022.12.07 |
---|---|
env파일 gitignore 안 먹혔을 때 (0) | 2022.12.02 |
댓글