깃허브 협업
이슈 (Issues)
: 프로젝트 작업, 개선사항, 오류 추적 등을 이슈 단위로 작성하고 관리할 수 있음, 라벨(Labels)을 통해서 이슈의 성격을 구분 지을 수 있음
프로젝트 (Projects)
: 작업 및 우선순위 관리를 도움.
브랜치
: main 브랜치를 기준으로 각자 다른 코드 작업을 할 수 있는 기능. main 브랜치는 가장 최근에 생성된 커밋을 바라봄
브랜치 정보 확인
git branch (지역 저장소의 브랜치 정보 확인, -l 이 생략된 명령어)
git branch -a (지역 저장소와 원격 저장소의 브랜치 정보 모두 확인)
git branch -r (원격 저장소의 브랜치 정보 확인)
git branch -v (지역 저장소의 브랜치 정보 + 최신 커밋 내용)
원격 저장소에서 브랜치 생성하기
github 원격 저장소에서 main 브랜치 버튼을 클릭한 후 새로운 브랜치명을 입력하면 Create Branch라는 버튼이 활성화 됨. 현재 main 브랜치의 최신 상태를 기준으로 생성됨
지역 저장소에 원격 저장소 갱신
git remote update
원격 저장소에서 생성한 브랜치를 지역 저장소의 작업 브랜치 설정 (track)
git checkout -t <브랜치명>
지역 저장소에서 브랜치 생성하기
기준이 될 브랜치의 상태에서 명령어 실행 (main 브랜치로 변경하는 방법: git checkout main)
지역 저장소에 새로운 브랜치 생성
git branch <브랜치명>
원격 저장소에 새로운 브랜치 반영
git push origin <브랜치명>
브랜치 삭제하기
지역 저장소 브랜치 삭제
git branch -d <브랜치명>
원격 저장소의 브랜치 삭제
git push origin -d <브랜치명>
브랜치 병합하기
새로운 작업 브랜치의 커밋 내역을 기준 브랜치에 반영하는 작업, 두 브랜치를 비교하여 파일의 변경 내용을 비교하여 합치는 기능.
1) 빨리감기 병합 (fast forward)
main > 작업 브랜치 생성 > 작업 완료 > main 브랜치에 새로운 커밋이 없다면 진행되는 병합 타입. 기준 브랜치에 새로운 커밋이 단순하게 최신 커밋으로 더해지고, 기준 브랜치가 바라보는 최신 커밋이 변경되는 방식.
main 브랜치에서 git merge <브랜치명>
2) 병합 커밋 (merge commit)
기준 브랜치에 변경된 점이 있을 때 사용하는 타입. 기준 브랜치와 새로운 작업 브랜치의 변경 내용을 합치는 작업 필요
위의 빨리감기 병합과 동일하게 진행되지만, main 브랜치에 변경점이 있을 때는 merge 명령어를 실행하였을 때 커밋 메세지 작성 에디터가 뜨고, 그 여러 가지의 변경점을 병합하여 커밋을 하게 됨.
풀 리퀘스트
병합 예정인 브랜치 변경 내역 검토 요청
원격 저장소 내역 지역 저장소에 반영하기
git pull <원격 저장소 식별자 : origin> <원격 저장소 브랜치 : main>
* fetch와의 차이점: pull은 가져와서 지역 저장소의 main에 병합까지 해주는데, fetch는 직접 병합해야 함