git : 내 로컬 저장소, 내 컴퓨터
git hub : 내 컴퓨터가 아닌 원격 저장소 (like 구글 드라이브)
**즉, git != git hub
git과 git hub는 다르다!
git hub은 git의 저장소를 웹에서 사용할 수 있도록 하는 커뮤니티 기능 서비스다.
즉, git hub은 git으로 된 프로젝트 저장공간을 제공하며, 협업하기 위한
기능들을 가지고 있다. (like 개발자들의 sns!)
git에서 관리하는 영역 3가지
working directory: 현재 작업중인
staging area: 커밋 할 파일의 예비 저장소
로컬 저장소: 각 유저의 컴퓨터에서 관리되는 공간
git hub는 로컬저장소의 내용을 'push'라는 액션으로 전달받아 저장한다.
(like 구글 드라이브에서 파일을 올리고 다운받는 것!)
git은 커밋으로 파일을 변경할 수 있기 때문에 히스토리 관리에 용이하다.
협업에 유용하다.(각자 작업하고 하나로 합치고, 한 눈에 파악하기가 쉽다.)
커밋: 파일 저장, 변동 이전의 상태가 유실되지 않고 유지된다.
(즉, 현재 프로젝트의 상태를 저장하는 것)
소스트리 : 깃을 쉽게 사용하는 도구
충돌: A도, B도 똑같은 index.html 파일을 'push'하고 싶을 때 충돌이 발생한다.
1. 누가 작업을 진행할 것인지 정한다.
2. 각자 맡은 것에 대해 작업한다.
3. 작업을 합칠 수 있게 공유한다.
4. 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다.
=issue=
1. 누가 작업을 진행할 것인지 정한다.
즉, 프로젝트에서 해결해야 하는 문제
(ex, 버그신고, 버그리포트, 기능 추가 등 개선 제안, 문제 해결하기 위한 작업)
(ex, "회원가입 기능에서 버그 있네요. 이슈 등록해둘게요")
=branch=
2. 각자 맡은 것에 대해 작업한다.
즉, 기능에 맞게 나누어 작업할 수 있다.
체크아웃 : 현재 작업하는 브랜치를 선택하는 것
+브랜치를 삭제하면 그동안 브랜치에서 했던 작업 내역, 커밋이 모두 사라진다.
기본 브랜치인 main(master)브랜치로 체크아웃되며 작업 브랜치가 변경된다.
=merge=
3. 각자 작업을 합친다.
즉, 브랜치를 다른 브랜치에 합치는 것
특정 브랜치의 커밋들을 다른 브랜치의 커밋 내역에 모두 반영하는 것
+깃플로우 : 커밋하고 작업하는 방법을 통틀어 이르는 말.
웹프로젝트의 경우 깃헙플로우를 많이 사용한다.
+머지 충돌 : 하나의 파일을 여러 브랜치에서 수정하고, 하나의 브랜치에서 머지하려고 할 때 머지 충돌이 발생하게 된다. 양쪽에서 내용이 수정되었는데 어떤 내용을 반영해야 할 지..
git ignore : 깃으로 하여금 특정 파일을 무시하여 커밋에서 제외시키는 역할
자동으로 생성되는 파일이나, 보안상 공개되어서는 안 되는 파일, 불필요한 파일 등등