Django 프로젝트 세팅 2(Git, Github)

강민성·2021년 12월 9일
1

Git & Github

git, github의 개념과, git의 전반적인 사용법은 아래 링크 참고
Git & Github

내 로컬에서 프로젝트 생성

git 시작(초기화)

git init

git으로 관리할 프로젝트의 프로젝트 폴더(manage.py가 있는 곳)로 이동 후 git init 입력
git init을 명령한 위치로부터 모든 디렉토리와 파일들이 git의 관리(추적)대상이 됨
프로젝트 폴더 내에 숨겨진 .git 디렉토리를 생성, git 초기화
git의 관리를 취소하고 싶을 경우 .git 디렉토리를 삭제하면 됨

.gitignore 생성

.gitignore 파일을 생성하여 git의 관리(추적) 대상에서 제외할 요소(기밀사항)들 등록

.gitignore 파일 구성

cd '프로젝트 폴더명'
touch .gitignore
vi .gitignore

############################
# gitignore.io에서 나온 결과 요소들 전체 붙여넣기 #
############################

manage.py가 있는 위치에 생성
https://www.toptal.com/developers/gitignore에서 사용하는 환경에 해당하는 키워드를 선택하면, 자동으로 .gitignore 파일에 정의할 요소들을 생성해줌
정의된 요소들을 복사하여 .gitignore 파일에 붙여넣기
가장 하단에 my_settings.py 추가(보안 관련 파일은 github에 업로드되면 안되기 때문)

저장

git add .
git commit -m "Add: Django Project Setting"

Github에 Git 연결(push)

Github repository의 url 등록

git remote add origin Git을연결할Githubrepository의url주소

git을 연결할 url을 remote(원격 저장소)의 origin이라는 곳에 등록

master branch 이름변경

git branch -m master main

master branch의 이름을 main으로 변경

github에 업로드

git push origin branch명

로컬 git의 branch를 origin에 올리기
Github 사용자명과 Github 토큰 입력(https://velog.io/@jini_eun/Github-2021%EB%85%84-8%EC%9B%94-13%EC%9D%BC%EB%B6%80%ED%84%B0-%ED%86%A0%ED%81%B0-%EC%9D%B8%EC%A6%9D-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EB%B3%80%ED%99%94)

branch 설정

main이 아닌 새로운 branch를 생성하여 앱을 등록

main 브랜치에서 새로운 브랜치 생성, 이동

git branch 브랜치 이름
git checkout 브랜치 이름 

# 생성과 동시에 이동하는 방법
git checkout -b 브랜치 이름

반드시 main 브랜치에서 새 브랜치를 생성해야 함

Github의 main 브랜치를 로컬로 pull 받기

git pull origin main

main 브랜치로 한 번, 새로 만든 브랜치로 한 번 pull

branch에서 앱 만들어서 업로드하기

branch 설정

위와 동일

앱 만들기

앱 생성, 구성

Github의 main 브랜치를 로컬로 pull 받기

git pull origin main

main 브랜치로 한 번, 새로 만든 브랜치로 한 번 pull
push 전에 최신버전의 main을 pull 받아야 conflict를 최소화할 수 있음

Github에 push

git add .
git commit -m "Add: products application"
git push origin 브랜치이름

깃허브에서 compare 가능(합쳐도 되는 코드인지 아닌지 판단할 때 사용)

Githu에서 Pull Request(PR) 작성

Github에서 pull request 버튼을 누른 뒤 PR의 제목과 내용(description) 작성 -> create pull request 버튼으로 PR 생성 완료
라벨링을 통해 원하는 사람들을 리뷰어에 추가할 수있음
작업을 마친 branch를 push하고, branch가 main branch에 적용될 준비가 되었다면, Pull Request를 통해 프로젝트 오너(혹은 팀 리더)에게 내가 작업한 branch의 작업내용을 main 브랜치에 반영해달라고 요청할 수 있음
Pull Request에서는 해당 repository를 열람할 수 있는 권한이 있는 개발자들이 작업내용에 대한 리뷰를 해주거나, 변경 사항을 확인할 수 있음
--> 수정 사항을 받을 경우: 수정하여 다시 push하고 PR 내용을 수정 내용에 맞게 변경한 후, PR 라벨링을 변경
--> 수정 사항이 없을 경우: 관리자가 내가 push한 내용을 main에 merge해줌

main branch로 merge

PR 생성 --> 함께 협업하는 개발자들이 방금 만든 PR을 리뷰, 분석하고 댓글 --> 리뷰 내용 반영 --> main 브랜치와 충돌이 발생하는지 확인 --> 해당 PR을 main 브랜치로 merge
만약 main branch와 충돌이 발생할 경우 개발자가 직접 코드들을 비교해 충돌을 해결하고 merge해야 함

GitHub로부터 변경사항 pull하기

Github의 main branch 내용이 변경된 후, 변경된 최신버전 main branch를 내 로컬 repositry에 업데이트(pull) 받아야 함
git pull 명령어를 통해 remote의 최신화된 코드를 내 로컬 repository에 반영
내가 만든 코드를 push한 이후 다시 pull해야 하는 이유: 내 코드가 올라가서 main이 새로운 버전이 되므로 내 로컬 main을 업데이트해야하기 때문

git pull origin main

cf) Github에서 디렉토리를 clone받아 시작하는 경우

Github에서 디렉토리 clone

프로젝트를 시작할 디렉토리로 이동 후

git clone "위에서 복사한 github 주소" . # 현재 위치에 디렉토리 생성
혹은
git clone "위에서 복사한 github 주소" # 현재 위치/디렉토리명 안에 디렉토리 생성

branch 설정~

위와 동일

프로젝트 혹은 앱 생성

cf) 다른 팀원이 팀원의 코드를 Github에 push했을 때

팀원의 코드를 보고 코드에서 리뷰를 남기고 싶은 부분에 리뷰 남기기, 메시지 남기기

다른 팀원의 PR에 대해 라벨 달기

--> 괜찮으면 merge하고 "LGTM" 댓글 달기

profile
Back-end Junior Developer

0개의 댓글