✏멘토링 일지✏ - 2021community/Algorithm-skills GitHub Wiki
- branch protection을 걸어 develop에 접근 제한을 잘 했다.
- feature/#19/이름 - 이슈 뒤에 슬래시를 붙이는 경우는 거의 없으므로 feature/#19_김지혜 혹은 feature/#19-김지혜로 만든다.
- hotfix는 배포 후 버그가 발견되는 긴급한 수정이 필요할 때 main에서 따서 작업해야 한다. 작업 후 main에 바로 merge하는 경우도 있지만 회사마다 다르다.
- 전략의 이유를 설명하면 좋을 것이다.
1. README.md 파일의 경우 팀원 모두가 같이 담당하는 이슈인데 이런 경우에 이슈를 상세히 나누는 것과 한 이슈에서 branch를 각자 생성하는 것 중에 더 효율적인 방안은 어떤 것인가요?
▶ branch를 생성해서 만드는 방법이 좋다.
1) feature/#19 공동작업 베이스를 공유
2) 베이스에서 분기를 나눠 작업
3) 각자 작업한 분기를 베이스에 merge
4) 베이스를 develop에 merge
2. 잘못했을 때 수정은 어떻게 하는 것이 좋은가요?
▶ 커밋 메시지 수정, 커밋 합치기, 순서 바꾸기, 삭제 등 커밋 로그를 꾸밀 때 interactive rebase 사용한다.
git rebase -I HEAD~5
HEAD: 현재 체크아웃한 브랜치의 가장 최신 커밋을 가리키는 포인터
-I: interactive rebase
1) 실수하더라도 reset을 사용하지 않고 rebase 옵션을 잘 사용해 커밋을 수정, 삭제할 수 있다. (amend, suqash, drop 등)
2) 막힐 때는 git status로 힌트를 얻는다.
3. 현업에서는 git reset, rebase 사용 안 한다는 말이 있는데 그러한가요?
▶ 보통 f1이 공동작업을 하는 브랜치일 경우 문제 발생한다.
1) 브랜치의 이력이 변경된 것을 모를 때 문제가 발생함으로 커뮤니케이션이 중요
2) 공동작업자가 메커니즘을 잘 이해하고 있다면 reset, rebase를 사용 가능
3) 혼자 하다가 같이 하게 되면 주의를 먼저 줘야 함(공동작업자가 잘 모르면 내가 푸시 할 때마다 공동작업자는 f1을 지우고 다시 받아서 작업하는 방법을 이용)
4) main, develop에는 절대 reset, rebase하면 안 됨
5) reset 대신에 revert 사용: 커밋을 취소하는 커밋이 생김(반대로 되돌리는 커밋 생성. 그러면 이력이 달라지지 않으므로 중요할 때 사용)
예) https://git-school.github.io/visualizing-git/
- 개발자 커뮤니티가 Facebook을 중심으로 활발하게 활동하기 때문에 최신 소식이나 정보를 빠르게 얻고 싶다면 Facebook을 활용해보자.
- 지금 프로젝트를 진행한 결과물을 그냥 끝내기에는 아까우므로 Facebook 개발자 커뮤니티에 홍보를 해보는 것도 좋을 것 같다.
- 해외 소식은 트위터에서 가장 빠르게 얻을 수 있다.
- git flow 전략을 사용하는 근본적인 이유는, 빠르게 비즈니스 요구사항을 반영하기 위함인데, 마지막에만 develop 브랜치를 master에 merge 하게 되면, 전략이 생긴 이유와는 거리가 멀어지게 된다.
1. git pages에서는 아이콘(SVG 파일) 깨짐 현상이 발생하는데 어떻게 해결해야 좋을까요?
▶ Status code를 확인하고 찾아보는 것이 좋다.
1) 페이지 검사를 통해서 Status code를 확인
2) github pages SVG status [코드]를 검색해서 해결방안을 찾음
2. rebase를 사용하니까 커밋이 계속 기록에 남는데 괜찮은 것인가요?
▶ 공동작업하는 곳에서 rebase를 하게 되면 충돌이 일어나거나 어긋나게 되는데 커밋이 기록에 남으면 서로 진행 상황을 확인할 수 있어서 커밋 기록이 남는 것이 더 도움이 된다.
3. master에 release 할 때 pull request를 통해 master에 병합해야 하나요?
▶ 팀에서 결정해서 진행하면 되지만, 주로 pull request를 통해 병합한다.
배포하기 전에 여러 사람이 함께 확인하는 것이 좋으므로 pull request를 주로 사용한다.




