View
clone
GitHub repo 를 먼저 생성한 뒤 clone 을 받아 내 로컬환경에 다운로드 후 프로젝트를 시작하는 방법
HOW TO CLONE???
1. GitHub에 새로운 repository 생성
2. 새로 생성한 repository의 url을 복사
3. Terminal 경로를 해당 repo 를 다운로드 받고 싶은 경로로 변경
4. 아래 명령령어 실행
git clone <github-repo-link>
5. 해당 경로에 repository의 이름과 동일한 폴더가 생성되며, cd명령어를 통해 해당 폴더로 이동하면, clone을 시행한 시점에
remote repository 즉 git hub에 존재하였던, 폴더 및 파일들이 그대로 복제되는 것을 확인 가능.
👉이러한 방식으로 다른 개발자들의 public repository를 클론 받아 작업 가능.
Branching and merging
Branch
Branch를 통해 현재 프로젝트의 코드를 그대로 복제하여 작업 환경을 생성 할 수 있습니다.
그렇게 된다면, master 브랜치를 건드릴 필요없이 작업환경에서 기능을 추가하거나 테스트를 진행할수 있게 됩니다.
GitHub 에 브랜치 push
1. 새로 생성한 프로젝트에 새로운 파일 추가 전에 아래 명령어를 통해 먼저 branch를 생성하고 이동한다.
git checkout -b feature/greetings
git add .
git commit -m "Add: greetings"
git push origin feature/greetings
push 까지 하면 최종적으로 git hub에 feature/greetings 브랜치가 생성 된것을 확인 할 수 있다.
Pull Request (PR) 생성하기
커스텀 브랜치를 push 하고 master 브랜치에 적용될 준비가 되었다면,
Pull Request (PR) 라는 것을 통해 프로젝트 오너 (혹은 팀 리더) 에게 내가 작업한 브랜치의 작업내용을 master 브랜치에 반영해달라는 요청을 보낼 수 있다.
Pull Request 에서는 해당 repository 를 열람할 수 있는 권한이 있는 개발자들이 작업내용에 대한 리뷰를 해주거나,
변경 사항을 확인할 수 있습니다. (master 브랜치로 합쳐지기 전에 확인해야하기 때문에)
해당 링크를 클릭하면, Pull Request 를 생성할 수 있는 페이지로 이동하게 됩니다.
거기서 해당 PR의 제목과 어떤 내용을 담고 있는지 설명하는 Description을 작성할 수 있습니다.
작성을 완료했다면, 하단에 'Create pull request' 버튼을 눌러 마무리합니다.
이때부터는 함께 협업하는 개발자들이 방금 만든 PR을 리뷰, 분석하고 댓글까지 달아줄 수 있습니다.
모든 리뷰 내용이 반영된 후 master 브랜치와 충돌이 발생하지 않았다면, 해당 PR은 master 브랜치로 merge 될 준비가 완료되었습니다.
Conflicts (충돌)
충돌은 어떤 파일의 변경사항이 기준이 되는 master 브랜치의 파일과 겹쳐, Git 에서 어떤 버전의 코드를 선택해야하는지 모를 때 발생
이런 상황에서는 개발자가 직접 코드를 비교해 충돌을 해결하고 merge 를 마무리 해야합니다.
GitHub 으로부터 변경사항 pull 하기
pull request를 통해 master 브랜치를 업데이트 했다면, 이제 로컬 repo는 GitHub의 master와 서로 다른 내용을 가지고 있게 된다.
이때, git pull 명령어를 통해 remote의 최신화된 코드를 내 로컬 repo에 반영할 수 있다.
GitHub remote repo 링크에 origin 이라는 이름을 붙여줬었기 때문에
아래 명령어를 통해 GitHub repo 의 master 브랜치 내용을 받아올 수 있습니다.
git pull origin master
👇 깃허브 참고 사이트
👇 마크다운 언어 배우기
'PYTHON' 카테고리의 다른 글
TIL | PYTHON_Session_로그인 & 회원가입 (0) | 2021.08.25 |
---|---|
TIL | codecata_week2day2_숫자중에서 과반수가 넘은 숫자를 반환 (0) | 2021.08.25 |
TIL 41 | PYTHON_Coding Convention (0) | 2021.08.19 |
TIL 40 | PYTHON_Django_ManyToManyField의 역할 (0) | 2021.08.18 |
TIL 27 | PYTHON_How import statement finds modules and packages (0) | 2021.08.10 |