안녕하세요, 강의 잘 듣고 있습니다. Git을 정리하는 데 큰 도움을 받고 있습니다. 다름이 아니라 GitHub에서 브랜치를 메인 브랜치로 병합할 때 사용하는 전략에 대해 궁금합니다. 기본 병합(merge), 스쿼시 & 머지(squash & merge), 리베이스 & 머지(rebase & merge) 방식이 있는데, 어떤 방식을 선호하시는지 여쭤보고 싶습니다. 개인적으로는 로컬에서 작업할 때는 리베이스 & 머지 를 선호합니다. 히스토리를 깔끔하게 유지할 수 있기 때문입니다. 반면에 메인 계열 브랜치(dev, prod 등)로 병합할 때는 기본 병합 을 사용해야 기능 추가 히스토리를 명확히 추적할 수 있다고 생각합니다.
안녕하세요! 강의 너무 잘 듣고 있습니다. 제가 이번에 git을 처음 써보면서 이것저것 시도해보고 있는데요! git pull merge 요청을 보낼 때 분명 한번에 merge를 시도 했는데 draft라고 남는 경우가 있더라구요! 혹시 이건 제가 요청을 제대로 보내지 않아서 생기는 걸까요?
안녕하십니까? 강사님 명절은 잘보내셨는지요? 실습중에 오류가 나는 부분이 있어 질문 드립니다. 430강 shiny day를 모듈화시키는 강의를 실습하던중에 오류가 나서 질문 드립니다. ShinyModel, ShinyService, ShinyFormatter를 패키지화 시켰고, access level도 수정했습니다. 그런데도 오류가 납니다. Xcode 26에서 코딩했고, 오류부분의 일부분은 chatgpt도움을 받아 수정하였습니다. 혹시 몰라 전체 소스를 이메일로 보내드립니다. 바쁘시더라도 확인 부탁드립니다.
Q1. 브랜치 원리 5세션 12에서 “main은 복사되는 게 아니라 동일한 커밋을 여러 브랜치가 담고 있다”는 설명이 직관적으로 잘 그려지지 않아요. (복사가 아니면 정확히 어떤 메커니즘일까?) Q2. 머지와 컨플릭트 fast-forward 구조(예시 이미지)에서 빨간색 영역의 코드는 테스트 도중에 수정이 가능한건가요? 수정이 가능해서 수정 했다면 머지할 때 컨플릭트 가 나는거 아닌가요..? 왜 헷갈리냐면 강의에서 fast-forward 머지에서는 각각의 diff가 없기 때문에 conflict가 안 난다고 햇는데, 그럼 이런 구조는 fast-forward가 아닌 상황인건가요..? Q3. HEAD의 부모 커밋 아래 예시이미지에서 HEAD가 가리키는 커밋(main : Merge branch 'test')의 부모 커밋은 test add blue to rect와 add green to rect 이렇게 두 개가 맞는지 확인을 하구싶어요.
안녕하세요. rebase 단원(이전 강의)의 설명을 들으면서, rebase 란 fast-forward merge 를 수행할 수 있게끔 commit history 를 flatten 해 주는 작업으로 이해했는데요. rebase 과정에서도 conflict 가 발생하고, 이것을 처리해줄 필요가 있다면, 그냥 3-way merge 에서 conflict 를 처리하는 것과 근본적인 차이가 있을까요? 제 생각으로는 rebase 과정에서는 branch 에서 떨어져 나간 commit 들이 생기고, 3-way merge 에서는 기존 commit 들이 병합된 branch 안에 들어있다, 는 차이 정도밖에 없는 것 같은데요. 굳이 3-way merge 말고 rebase 를 사용해야 할 필요가 있을까요?
안녕하세요. 강사님 메모앱을 실습하던중에 질문 사항이 있어 이렇게 글을 올립니다. 그룹을 선택하면 그 그룹에 속한 메모들이 제대로 보이긴 한데, 그게 때에 따라서 틀려진다는게 이해할 수가 없어서 질문드립니다. 제가 어디서 잘못 코딩을 했는지 그 부분을 찾지를 못했습니다. 그래서 이미지라도 올립니다. 위 그림 처럼 같은 그룹인데도 그룹을 클릭할때마다 메모 리스트의 항목이 틀리게 나옵니다. 한번 봐주시면 감사하겠습니다.
제가 지금 사이드 프로젝트에서 dev와 main 두개의 브랜치로 나누어 사용중인데 보통 dev 브랜치를 이용해 git push origin dev 하고 풀리퀘스트 base를 main 브랜치로 한 후 다시 프로젝트 터미널에서 git pull origin main 으로 작업하고 있습니다 그러나 어느 날 git push origin dev 를 했는데 github에 Compare & Pull Request 버튼이 없어져서 수동으로 base 를 main 으로 pull request 하고 merge 했는데 그러자 마자 main 브랜치에 대해 Compare & pull request 버튼이 나타났습니다. 이걸 다시 이전처럼 dev 브랜치를 push 했을때 Compare & pull request 가 나타나게끔 바꾸고 싶은데 어떻게 해야하나요?
만약에 협업을 진행하는 과정에서 제가 develop브랜치에서 feat1브랜치를 따서 작업을 한후 push한다음 pr을 만들었지만, 아직 merge되지 않은 상태에서 feat1 브랜치보다 늦게 다른 팀원이 feat2브랜치를 따서 작업을 해서 push한 후 pr에서 develop브랜치에 merge까지 된 상태인 경우. feat1브랜치 사용자는 git pull origin develop 해서 최신사항을 내려받은 후 남은 작업을 수행해야하는 것인지 궁금합니다. 또한 git pull origin develop한다고 가정했을 때, 커밋이력이 1개만 추가되는 것인지 develop 브랜치의 최신 커밋이력들을 전부 가져오는 것인지 궁금합니다.
깃에서 머지(Merge)를 되돌려 이전 상태로 돌아가려면 어떤 방법을 써야 하는지 궁금합니다. fast-forward 머지인 경우에는 git reset을 이용해야 한다는 건 알겠습니다. 그런데 머지 커밋이 생성되는 일반 머지의 경우, 해당 머지 커밋에 대해 git revert를 적용해서 이전 상태로 되돌릴 수 있을 것 같은데 그렇다면 fast-forward 머지보다 머지 커밋을 생성하는 방식이 더 안전한 선택 인지도 궁금합니다.
안녕하세요 강사님 main 브랜치를 최상위 브랜치로 놓고 거기서 하위 브랜치인 dev 브랜치가 나오고 dev 브랜치에서 이걸 상위 브랜치로 갖는 다른 브랜치를 만드는 방법이 있나요? 로컬에서 여기서 설정 하는 거 말고 혹시 다른 방법이 있나요? 여기서 만들고 계속 동기화해서 올리고 있습니다.