Git_스파르타 02

5w31892p·2022년 11월 18일
0

Git

목록 보기
7/10

📜 Git

push/pull

clone

:: ✍ 협업하기

  1. 누가 작업할 것인지 정하기 (issue)
  2. 각자 맡은 것 작업하기 (branch)
  3. 각자 맡아서 한 작업 합치기 (merge)
  4. 작업내용 리뷰하고 최종 프로젝트에 반영하기 (PR후 merge)

:: Issue 할당

  • 누가 작업할 것인지 정하는 것
  • 프로젝트에서 해결하야하는 문제
  • 버그 리포트
  • 기능 추가 등 프로젝트 개선 제안
  • 문제 해결을 위한 작업 단위
"회원가입 기능에서 버그있네요. 이슈 등록해둘게요."
버튼을 더 눈에 잘 보이게 고치면 좋겠는데요? 이슈 등록해둘게요.
"6번 이슈 제가 처리할게요. 제 앞으로 할당해두겠습니다!"

이슈만들기

  • 해당 리포지토리의 이슈 페이지 접속
  1. 제목과 상세 내용은 협업하는 사람도 잘 알아볼 수있도록
  2. Assigness(담당자) : 이 이슈를 작업하거나 연관된 사람 (지금은 나)
  3. Labels: 이 issue 가 어떤 건지 분류
  • 이슈는 잘 적어두면 앞으로 내가 어떤 작업을 해야할지 파악하는데 편리함
  • 제목 옆에 #숫자 == 이슈 번호
  • 이슈 남겨둘 필요 없거나 작업 완료시 Close issue 로 닫기
  • 이때 종료 이유 적어두면 나중 프로젝트 관리할 때 편함
  • 종료되었더라도 필요할 때 다시 이슈 열 수 있는데 이때에는 Reopen
  • 이슈를 먼저 만들고 팀원들과 작업에 대해 충분히 논의한 후에 작업
  • 협업뿐만 아니라 혼자 할 때에도 작업기록 관리하는데 도움이 됨

이슈와 연관된 커밋만들기

  • 소스트리에서 커밋메시지 적은 후 뒤에 이슈 번호 적기 (~~~#1)
  • 푸시 후 깃허브에서 이슈와 커밋으로 적용한 내용 확인

:: Branch

  • 각자 맡은 것을 작업한다
  • 커밋 후 필요없는 브랜치는 삭제하기

브랜치 만들기

  • 커밋하지 않은 작업이 있다면 꼭 커밋하고 진행
  1. 깃헙 이슈 만들기
  2. 소스트리 브랜치 만들기
    • feature/2_브랜치이름
    • 브랜치명 안에 / 를 적어주면 마치 폴더처럼 보여줌
  3. 커밋 (작업하는 브랜치에 체크아웃 되어 있는지 꼭 확인)

브랜치 삭제

삭제할 브랜치에 체크아웃되어 있으면 안됨

:: Merge

  • 각자 작업을 프로젝트에 합친다
  • 브랜치를 다른 브랜치에 합치는 것
  • 즉시커밋, 병합커밋 메시지 첨부, fast-forward 체크

여러 브랜치 커밋 후 merge

  • 각각 다른 브랜치로 다른 파일 커밋(충돌 때문에 우선 이렇게)
  • 각 커밋 후 main으로 체크 아웃한 다음에 하나하나 병합 ㄱㄱ

merge 정리

  • 브랜치명은 규칙을 가지고 잘 이름 지으면 프로젝트 관리가 쉬워짐
  • 작업이 완료되면 작업한 브랜치는 보통 삭제 - 나중에 브랜치 설정이 꼬이는 것을 방지
  • 다른 브랜치에서 같은 파일을 수정하면 Merge conflict(병합 충돌) 가 발생

:: 구글링 꿀팁

  • 기술을 처음 배우고 싶을 때 : '기술이름' + 'tutorial'
    • (예. git tutorial)
  • 기능을 찾을 때 : '기술이름' + 'how to' + '찾을 내용'
    • (예. git how to merge )
  • 어떻게 사용하는지 예제를 보고 싶을 때 : '기술이름' + '내용' + 'example'
    • (예. github flow example)
  • 원하는 사이트명 포함해 검색 가능
    • (예: stackoverflow git merge - stackoverflow 라는 사이트에서 검색)
    • stackoverflow - 개발 QnA 사이트

:: 충돌 해결하기 - Merge conflict

  1. <<<<<<< HEAD , ======= , >>>>>>> 충돌나는 브랜치명 또는 commmit 아이디 를 지우면 끝
저 세개만 지워도 되고, 원래 있던 내용 기반으로 위치 등 바꾼 후 저 세개 지우던지,
아니면 둘 중 하나만 올리겠다! 라고 선택 후 저 세개 지우고 저장하면 끝
  1. 새로운 내용을 넣고 싶다면 우선 충돌 해결 후 새로운 커밋을 해줘야 작업내역에 남음
    • 그렇지 않으면 작업내역이 남지 않아 파악하기가 힘듦
  2. 그런 후에 이렇게 수정된 파일을 commit

:: 원격 repo 와 Branch

pull 과 push 는 결국 특정 branch(tracking branch) 에 있는 commit 을 여기와 연결되어있는 branch에 가져오는 것

병합하지 않고 해당 브랜치에서 푸시하기

  1. 로컬 repo 브랜치를 만들고 commit
  2. 원격 repo 에 해당 브랜치를 push
  3. 깃헙 가서 메인 눌러서 푸시했던 브랜치 있는지 확인
  4. 다 작업하고 난 후에는 더 이상 변경사항 없고 사용 안한다면 로컬 repo 브랜치를 삭제

tracking 한다는 것은 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것

:: ✍ 총정리

:: 협업할 때

1단계. 누가 이 작업 할 것인지 정한다. - Issue

2단계. 각자 맡은 것을 작업한다. - Branch

3단계. 각자 작업을 프로젝트에 합친다. - merge

(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge

:: issu

  • 내가 할 작업, 기능 추가, 버그 리포트 등 여러 방식으로 사용
  • issue 를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나눔
  • 브랜치(branch)는 특정 commit 에서 갈라져나와 작업할 수 있는데 기능별로 이름 만들어 브랜치에 작업
  • 체크아웃된 브랜치에만 commit 이 반영되므로 체크아웃되었는지 확인 꼭하기

:: branch

  • 브랜치명은 규칙을 가지고 이름 짓기
  • 브랜치는 작업 완료되면 삭제
  • 각 브랜치는 다른 브랜치의 영향 받지 않고 작업 가능
  • 같은 파일 동일한 부분을 다른 브랜치들이 작업하면 충돌
  • 넣을 부분 고쳐 수정한 다음 commit

:: merge

:: tracking

  • 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것
  • push와 pull 은 기본적으로 tracking(추적)되고 있는 브랜치를 기준으로 commit 내역을 반영

  • 협업을 위한 작업(commit) 관리
    • PR, commit 되돌리기 - amend, revert, reset , 작업내역 임시 저장 – stash
  • 협업 매너
    • commit 메시지 컨벤션, gitignore, README
  • 오픈소스로 정보 탐색하고 함께 즐기기
    • 내가 참고하기 좋은 코드, 기술 트렌드 정보를 얻는 방법
    • github exprore , 오픈소스(open source)
  • 포트폴리오
    • profile, 프로젝트 소개, 개발 블로그를 작성하는 방법
    • github profile , repo 소개 , github page

:: ✍ PR(Pull Request, 풀리퀘스트)

  • 내 작업 반영해주시겠어요?
  • 충분히 리뷰받고 최종적으로 프로젝트에 반영하는 단계
  • 바로 merge 하지 않고, 참여하고 있는 프로젝트에 내 작업(branch)를 merge해달라고 요청(Request) 를 먼저 보내는 것

같은 repo 에 PR 하기

  1. 깃헙에 메인이 아닌 다른 브랜치로 푸시했던 것 클릭
  2. 풀리퀘스트 클릭
  3. 최종적으로 MERGE해주고
  4. 작업 끝난 브랜치는 삭제

로컬 repo로 fetch(페치)후 pull 해오기

  • fetch : 가져와서 그냥 보기만 하는 것
  1. fetch
  2. PULL

PR은 브랜치를 바로 merge 해서 프로젝트에 반영하는 것이 아니라 반영 제안(request)후 merge 여부 결정됨

PR 이 완료되기 전까진 PR 요청을 한 로컬 브랜치( feature/jjim) 를 삭제 금지

:: 다른프로젝트에 PR하기

  1. commend 남기기
  2. FORK
  3. clone
  4. branch만들어 수정 후 push
    5, github에서 pr

:: 최신의 commit을 수정하는 것을 amend(어맨드고치기)

  • 커밋 옵션 누르면 마지막 커밋 정정 있음

:: commit 되돌리기 - revert, reset

:: 변경사항 임시 보관하기 – stash

  • 변경사항을 임시적으로 보관
  • 아직 작업 중이라서 commit 하지 않고 변경사항만 보관해두고 싶을 때

0개의 댓글