push/pull
clone
- 누가 작업할 것인지 정하기 (issue)
- 각자 맡은 것 작업하기 (branch)
- 각자 맡아서 한 작업 합치기 (merge)
- 작업내용 리뷰하고 최종 프로젝트에 반영하기 (PR후 merge)
"회원가입 기능에서 버그있네요. 이슈 등록해둘게요."
버튼을 더 눈에 잘 보이게 고치면 좋겠는데요? 이슈 등록해둘게요.
"6번 이슈 제가 처리할게요. 제 앞으로 할당해두겠습니다!"
이슈만들기
- 해당 리포지토리의 이슈 페이지 접속
- 제목과 상세 내용은 협업하는 사람도 잘 알아볼 수있도록
- Assigness(담당자) : 이 이슈를 작업하거나 연관된 사람 (지금은 나)
- Labels: 이 issue 가 어떤 건지 분류
- 이슈는 잘 적어두면 앞으로 내가 어떤 작업을 해야할지 파악하는데 편리함
- 제목 옆에 #숫자 == 이슈 번호
- 이슈 남겨둘 필요 없거나 작업 완료시 Close issue 로 닫기
- 이때 종료 이유 적어두면 나중 프로젝트 관리할 때 편함
- 종료되었더라도 필요할 때 다시 이슈 열 수 있는데 이때에는 Reopen
- 이슈를 먼저 만들고 팀원들과 작업에 대해 충분히 논의한 후에 작업
- 협업뿐만 아니라 혼자 할 때에도 작업기록 관리하는데 도움이 됨
이슈와 연관된 커밋만들기
- 소스트리에서 커밋메시지 적은 후 뒤에 이슈 번호 적기 (~~~#1)
- 푸시 후 깃허브에서 이슈와 커밋으로 적용한 내용 확인
브랜치 만들기
- 커밋하지 않은 작업이 있다면 꼭 커밋하고 진행
- 깃헙 이슈 만들기
- 소스트리 브랜치 만들기
- feature/2_브랜치이름
- 브랜치명 안에 / 를 적어주면 마치 폴더처럼 보여줌
- 커밋 (작업하는 브랜치에 체크아웃 되어 있는지 꼭 확인)
브랜치 삭제
삭제할 브랜치에 체크아웃되어 있으면 안됨
여러 브랜치 커밋 후 merge
- 각각 다른 브랜치로 다른 파일 커밋(충돌 때문에 우선 이렇게)
- 각 커밋 후 main으로 체크 아웃한 다음에 하나하나 병합 ㄱㄱ
merge 정리
- 브랜치명은 규칙을 가지고 잘 이름 지으면 프로젝트 관리가 쉬워짐
- 작업이 완료되면 작업한 브랜치는 보통 삭제 - 나중에 브랜치 설정이 꼬이는 것을 방지
- 다른 브랜치에서 같은 파일을 수정하면 Merge conflict(병합 충돌) 가 발생
- 기술을 처음 배우고 싶을 때 : '기술이름' + 'tutorial'
- (예. git tutorial)
- 기능을 찾을 때 : '기술이름' + 'how to' + '찾을 내용'
- (예. git how to merge )
- 어떻게 사용하는지 예제를 보고 싶을 때 : '기술이름' + '내용' + 'example'
- (예. github flow example)
- 원하는 사이트명 포함해 검색 가능
- (예: stackoverflow git merge - stackoverflow 라는 사이트에서 검색)
- stackoverflow - 개발 QnA 사이트
저 세개만 지워도 되고, 원래 있던 내용 기반으로 위치 등 바꾼 후 저 세개 지우던지,
아니면 둘 중 하나만 올리겠다! 라고 선택 후 저 세개 지우고 저장하면 끝
pull 과 push 는 결국 특정 branch(tracking branch) 에 있는 commit 을 여기와 연결되어있는 branch에 가져오는 것
병합하지 않고 해당 브랜치에서 푸시하기
- 로컬 repo 브랜치를 만들고 commit
- 원격 repo 에 해당 브랜치를 push
- 깃헙 가서 메인 눌러서 푸시했던 브랜치 있는지 확인
- 다 작업하고 난 후에는 더 이상 변경사항 없고 사용 안한다면 로컬 repo 브랜치를 삭제
tracking 한다는 것은 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것
- 협업을 위한 작업(commit) 관리
- PR, commit 되돌리기 - amend, revert, reset , 작업내역 임시 저장 – stash
- 협업 매너
- commit 메시지 컨벤션, gitignore, README
- 오픈소스로 정보 탐색하고 함께 즐기기
- 내가 참고하기 좋은 코드, 기술 트렌드 정보를 얻는 방법
- github exprore , 오픈소스(open source)
- 포트폴리오
- profile, 프로젝트 소개, 개발 블로그를 작성하는 방법
- github profile , repo 소개 , github page
같은 repo 에 PR 하기
- 깃헙에 메인이 아닌 다른 브랜치로 푸시했던 것 클릭
- 풀리퀘스트 클릭
- 최종적으로 MERGE해주고
- 작업 끝난 브랜치는 삭제
로컬 repo로 fetch(페치)후 pull 해오기
- fetch : 가져와서 그냥 보기만 하는 것
- fetch
- PULL
PR은 브랜치를 바로 merge 해서 프로젝트에 반영하는 것이 아니라 반영 제안(request)후 merge 여부 결정됨
PR 이 완료되기 전까진 PR 요청을 한 로컬 브랜치( feature/jjim) 를 삭제 금지