개발하고 싶은 초심자

2-4. 220512 Git Flow 연습 본문

Project in Codestates/First Project

2-4. 220512 Git Flow 연습

정새얀 2022. 5. 12. 21:30

어제는 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가 정상적으로 되는 것을 확인할 수 있었다.

 

Comments