작성
·
212
0
첫 과정: fork 한 곳을 clone 하고 브랜치를 만들어 그곳에서 코드를 작성(commit) & 나의계정/repository 에 push 한 후, 나의 계정/repository에서 pull request 날리고 이후 branch 삭제
-------------------------------------------------------
1.
추가로 코드를 작성할 때, branch 를 새로 만들고 그곳에서 기존의 organization/repository 를 fork 한 나의계정/repository 를 clone 한 코드를 기반으로 작성하게 됩니다.
와중에 organization/respository 은 다른 사용자들이 내용을 변경할수록 점점 달라지게 되고, organization/repository 와 처음의 organazation/repository를 fork 한 나의계정/repository 의 괴리는 커질 것 입니다.
추가로 변경된 부분을 알아야 코드를 작성하기 좋을 것 같은데, 그럼 코드를 작성하기 전에 먼저 organization/repository의 내용을
나의계정/repository 을 clone 한 내 로컬저장소에 pull 한 후,
로컬저장소에서 코드작성(commit) 하고 나의계정/repository에 push 한 다음, 나의계정/repository 에서 pull request 날리고, 이후 branch 삭제를 하는 건가요?
2.
commit 까지 한 후 organization/repository 가 바뀐다면 현재 브랜치에서 다시 pull 하고 충돌 있으면 해결하고, 다시 코드 작성(commit)하고 나의 계정/repository 에 push 하면 되나요?
- 좀 복잡하게 말한 것 같아 이해부탁드립니다.-
답변 3
1
fetch and merge는 자신의 원격 저장소를 동기화 시키는 방법입니다.
로컬 저장소를 동기화시키기 위해서는 fetch and merge한 원격 저장소를 pull 하셔야 합니다!
언제든 질문주셔도 좋습니다 :)
감사합니다
1
1.
추가로 코드를 작성할 때, branch 를 새로 만들고 그 곳에서 기존의 organization/repository 를 fork 한 나의계정/repository 를 clone 한 코드를 기반으로 작성하게 됩니다.
와중에 organization/respository 은 다른 사용자들이 내용을 변경할수록 점점 달라지게 되고, organization/repository 와 처음의 organazation/repository를 fork 한 나의계정/repository 의 괴리는 커질 것 입니다.
추가로 변경된 부분을 알아야 코드를 작성하기 좋을 것 같은데, 그럼 코드를 작성하기 전에 먼저 organization/repository의 내용을
나의계정/repository 을 clone 한 내 로컬저장소에 pull 한 후,
로컬저장소에서 코드작성(commit) 하고 나의계정/repository에 push 한 다음, 나의계정/repository 에서 pull request 날리고, 이후 branch 삭제를 하는 건가요?
>> 기존의 organization/repository를 pull 하고, 코드를 작성한 뒤 Pull Request를 날리는 것이 맞습니다.
아니면 이런 방법도 있습니다. 예를 들어, 아래 사진은 namhyung/uftrace를 fork 해온 제 계정(kangtegong)의 uftrace, 즉 kangtegong/uftrace 입니다.
현재 기존 repository (namhyung/uftrace) 에 비해 4 개의 커밋이 뒤쳐져있다고 나와 있죠?
이 경우 "fetch upstream"의 fetch and merge를 하게 되면 원본 repository와 동일해지게 됩니다.
2.
commit 까지 한 후 organization/repository 가 바뀐다면 현재 브랜치에서 다시 pull 하고 충돌 있으면 해결하고,
다시 코드 작성(commit)하고 나의 계정/repository 에 push 하면 되나요?
>> 네 맞습니다. push를 할 적에 충돌이 있다면 어떤 부분에서 충돌이 발생했는지 나오게 될텐데, 그 부분만 해결하고 다시 commit 후 push하면 성공적으로 반영됩니다
0
1 번에 추가로 제시해주신 답변에 궁금한 점이 있습니다.
organization/repostory 를 내 로컬에서 pull 하는 방법 대신,
내 계정/repository 에서 fetch and merge 를 하는 방법을 알려주셨는데
이렇게 되면 내 계정/repository는 원본 repository 와 같아지는 점은 알겠으나,
같아진 내 계정/repository 를 다시 내 로컬 저장소에 적용하진 않는 건가요? 알아서 적용이 되나요?
로컬 저장소에는 아직 기존의 코드내용만이 있을 텐데요!!
친절한 답변 늘 감사드립니다!!