Fork
해서 팀원마다 각각 저장소를 가지고 프로젝트를 하는 방식🐥: 팀장
🐣: 조원
$ git clone { URL }
$ cd { 파일명 }
$ git branch //*main
$ git flow init
$ git flow init
$ git branch // *develop main
$ touch fizzbuzz.py
$ git status // 확인
$ git add fizzbuzz.py
$ git commit -m "feat: Create fizzbuzz.py"
$ git push -u origin develop
$ git clone { copy_repo_url }
$ cd { 파일명 }
$ ls // LICENSE README.md (작업한 파일을 확인하기 위해서는 develop브랜치로 이동해야한다.
$ git branch //하지만 브랜치를 확인해보면 main브랜치 밖에 없는 것을 확인할 수 있다.
ex)
I'll do fizzbuzz
# Task list
- [ ] do fizz
- [ ] do buzz
- [ ] do fizzbuzz
$ git flow init
을 통해 초기화 $ git flow init
$ ls // LICENSE README.md fizzbuzz.py : fizzbuzz.py가 생긴 것을 확인할 수 있다.
어떻게 팀장이 작업한 fizzbuzz.py가 생성될 수 있는지?에 대한 이해 흐름
- 팀장의 remote_repo를 복사해왔기 때문에 팀원의 remote_repo를 확인해보면
main
과develop
로 브랜치가 두개인 것을 확인할 수 있다.- 팀원의 remote_repo의
develop
브랜치를 확인해보면 똑같이 fizzbuzz.py가 있는 것을 확인할 수 있다.- 따라서 local_repo에서 이름이 같은
develop
브랜치를 만들면 당연히 상태도 똑같아야하기 때문에, fizzbuzz.py도 당겨오게 되는 것.
$ git flow feature start do-fizzbuzz //do-fizzbuzz라는 브랜치 생성
$ vi //작업시작
//작업후
$ git status
$ git add fizzbuzz.py
$ git commit -m "feat: Complete fizzbuzz"
$ git flow featur finish do-fizzbuzz //이제 develop 브랜치에서도 do-fizzbuzz에서 했던 동작이 작동하게 된다.
$ git push -u origin develop // 첫 push니깐 -u를 붙여진행
compare & pull request
누르기.(또는 Contribute
버튼)compare & pull request
클릭 후 이동된 팀장의 레포에서 화살표방향과 브랜치 꼭 확인( ⭐base: develop
)issues 체크
- 개발을 끝낼 때마다 해당하는 #1 (이슈넘버) 에 대한 해결사항을 Open a pull request 에 적어줘야 한다.
-#를 눌러 해당 이슈를 자동완성시킬 수 있다.
issues 의 tag 의미
- bug 예기치 않은 문제 또는 의도하지 않은 동작(버그), 수정 시 close
- duplicate 해당이슈 또는 PR이 기존에 있음, 원본에 링크를 남기고 close.
- enhancement 새로운 기능 요청 구현 시 close.
- help wanted 관리자가 문제 또는 PR 요청에 대한 도움요청 해결 시 close.
- invalid 이슈 또는 PR 요청이 더 이상 관련이 없음.(실현 불가능). 안 되는 이유를 쓰고 close.
- question 이슈 또는 풀 요청에 추가 정보가 필요함. 해결 or 납득 시 close.
- wontfix 문제 나 PR 요청에서 작업이 계속되지 않음. 이유를 쓰고 close.
- documentation 문서를 개선하거나 추가 할 필요가 있음
요청사항을 요구해야하는 상황이라고 가정.
Conversation
Files changed
+
버틀을 눌러 코멘트 달기요청사항이 있다고 가정한 상황.
$ vi fizzbuzz
//1번 요청사항 수정 후
$ git add
$ git commit
$ vi fizzbuzz
// 2번 요청사항 수정 후
$ git add
$ git commit
$ git push origin develop
$ git pull origin develop
//확인
$ git remote
$ git remote -v
//팀장의 레포 url 등록
$ git remote add upstream //upstream의 경우 관습적으로 사용하는 alias
$ git remote -v
// upstream 당겨오기
$ git fetch upstream develop
$ git merge FETCH_HEAD
upstream 당겨오기
- 방법1 pull
- 방법2 fetch
- 당겨서 해당 브랜치에 반영을 바로 하는 것이 아님
- 당겨서 FETCH_HEAD라는 임시 브랜치에 담아놓음
- FETCH_HEAD에 담긴 후에는 원하는 부분만 당겨올수도 있고 전체를 당겨올 수도 있음.
(이 때 바로 당기게 되면 pull과 동일하게 동작한 것과 같다.)
여기까지가 한 사이클을 돌린 것이다. 여기서 feature브랜치를 가져와 작업을 하면 다른 사이클이 시작되는 것입니다.
$ git flow feature start fb-lc
참고자료
정리 대박이에요ㅠㅠㅠ 실습에 너무 잘 참고했습니다