개발하고 싶은 초심자
2-4. 220512 Git Flow 연습 본문
어제는 1차 피드백을 바탕으로 한 기획 수정과 코드 작성 전 배포작업을 연습해보았고,
오늘 오전에는 2차 피드백을 기다리면서 코드 작성 전 전체적인 깃 플로우를 팀원들과 함께 연습하는 시간을 가진다.
1. Project Git Flow 명령어 정리
① git clone <upstream의 저장소 주소>
→ 팀장은 자신의 repository로 fork를 하지 않고
바로 코드스테이츠의 저장소, 즉 upstream의 저장소 주소를 바로 local에 clone한다.
② git checkout -b Dev
→ 개발 용도로 사용할 Dev branch 생성
‣ 초기 셋팅에서 제일 처음으로 npm init 꼭 해줄 것
‣ .gitignore 추가, 필요한 주요 모듈들 설치(--save-dev 옵션 꼭 붙일 것)
③ git add .
git commit -m 'commit message'
git push origin Dev
→ Dev branch를 upstream으로 올려주어 팀원들과 함께 작업할 공간을 만든다.
④ 팀원들은 Dev branch를 fork하고 각자의 local로 clone한다.
→ git clone -b Dev <fork한 레포지토리 클론 링크>
→ 그 다음 npm install 해준다(필수)
⑤ git remote add upstream upstream주소
→ 내 저장소의 주소가 아닌 upstream의 주소를 쓰는 것을 잊지 말자.
⑥ git branch 명령어로 자신이 어떤 branch에 있는 지 확인한다.
git checkout Dev 명령어로 Dev branch로 이동(없으면 만들어준다)
git push origin Dev로 Dev branch를 origin에 push한다.
⑦ git branch
git checkout Dev
git checkout -b feature
→ feature branch를 생성할때는 꼭 Dev branch 하위로 만들어주어야한다.
→ 기능마다 새로운 branch를 만들어 작업할거라면 feature1, feature2 ... 와 같이 생성한다.
⑧ 기능 구현 코드 작성 후
git status 명령어로 커밋할 파일 확인
git add 해당파일(git add . 명령어는 금지)
git commit -m '커밋 메시지'로 커밋
git push origin feature
→ 코드 작업이 끝나면 feature branch에서 local code를 push한다.
그러면 origin의 feature branch로 코드가 업데이트된다.
⑨ git pull upstream Dev
→ 이렇게 하면 local의 Dev branch는 최신화된다.
⑩ git push origin Dev
→ 최신화된 local의 Dev branch를 origin으로 push하여 백업해둔다.
⑪ git pull origin Dev 명령어로 팀원이 쓴 코드를 받아온다.
(→ 수정할 내용을 수정하고 git push origin feature)
⑫ github 페이지에서 pull request - New pull request
- 내 로컬에서는 feature branch, 코드스테이츠는 Dev branch - Create new request
- merge 여부 결정 - Merge pull request
⑬ merge 후 git pull origin Dev
2. 에러 로그 및 핸들링 정리
① 파일을 삭제한 내역을 commit하고 push하기
gui에서 파일 삭제 후
git status
git add -u // 파일명을 붙이지 않아도 알아서 삭제한 내역의 파일을 삭제한 내역으로 추가해준다
git push origin feature1
② git push 에러
git add와 git commit까지는 되는데 git push가 되지 않는 상황이 벌어졌다.
이에 대한 해결책을 여러가지 해봤는데
첫번째는 git remote remove origin - git remote add origin <내 레포지토리 주소> 명령어를 활용하여
origin 삭제 후 재생성하는 방법이었다. 하지만 같은 오류가 나왔다.
두번째는 git pull origin feature1 - git push origin feature1 명령어를 활용하여
일단 새롭게 바뀐 내용을 pull 해온 다음에 push를 해보는 방법을 사용하였지만 해결되지 않았다.
세번째는 참고 레퍼런스를 활용한 git push 명령어 뒤에 --force를 붙이는 방법이었다.
과거 커밋 기록을 삭제하는 git reset HEAD^를 해보는 것도 있었지만, 굳이 과거 기록을 지우지 않아도 될 것이라는 판단 하에 해보지는 않았다.
--force를 붙이는 방법으로 제대로 push를 했고, 그 이후 push를 했을 때 에러가 뜨지 않고 바로 push가 정상적으로 되는 것을 확인할 수 있었다.
'Project in Codestates > First Project' 카테고리의 다른 글
3-1. 220514 코드 작성(2) (0) | 2022.05.13 |
---|---|
3. 220513 코드 작성(1) (0) | 2022.05.13 |
2-3. 220511 Software Requirements 기획 수정 (0) | 2022.05.11 |
2-2. 220510 Software Requirement 기획 (0) | 2022.05.10 |
2-1. 220509 Software Requirements 기획 (0) | 2022.05.09 |
Comments