fork 및 Pull 요청: Github 재구매에 기여하는 방법
공동 작업 저장소 문제
만약 이 글을 읽고 있다면, 나는 당신이 이전에 Github를 사용한 적이 있다고 가정합니다.자신의 코드를 위한 개인 저장소를 만들었습니다. 제출을 만든 다음 이 제출을 이 저장소로 전송합니다.이것은 당신의 발전 과정 중 견딜 수 없는 이정표입니다!이제 다른 사람의 저장소에 도움을 요청하십시오.이 저장소는 오픈된 것일 수도 있고 팀의 저장소일 수도 있다.그래, 하지만 간단해, 그렇지?우리는 당신이 개인 환매에 대해 한 것처럼 이 환매를 복제하고 약속을 그것으로 미루기만 하면 된다.
근데 잠깐만!그것은 위험한 영역이다.만약 누군가가 오류로 채워진 코드를 이 공유 저장소로 보내면 어떻게 합니까?심지어 더 심각한 것은 일부 악의적인 Github 사용자가 고의로 악성코드로 응용 프로그램을 파괴한다면 어떻게 해야 합니까?우리 그러면 안 돼!따라서 이런 협업식 환매는 모든 변경 사항을 심사하기 위해 신뢰할 수 있는 관리자 한 명 이상이 필요하다.현재의 문제는: 이 관리자들은 어떻게 코드를 실행합니까?
대답: 포크를 만들었어요.
fork는 개인 Github 프로필의 리셋 프로토콜의 사본입니다.이 fork를 변경하고 코드를 실험할 수 있습니다. 좋습니다.포크에 대한 변경 사항은 파생된 원본 (이후 상류) 저장소에 영향을 주지 않습니다.사실상, 당신의 변경이 상위 환매에 들어가는 유일한 방법은 요청을 끌어들이는 것입니다.
"라 요청? 더 알려줘!"
만약 네가 이 프로젝트를 위해 아주 좋은 특성을 썼다고 가정해라.너는 마지막 약속을 하고 그것을 포크 위로 밀어라.잘했어!현재, 우리는 상류 환매 유지보수 직원에게 당신의 뛰어난 기능을 보여주기만 하면 그것을 프로젝트에 포함시킬 수 있습니다.
요청이 들어오면 관리자는 새 코드를 보고 프로젝트의 나머지 부분과 조화를 이루고 상류로 통합할 수 있습니다.만약 당신의 코드가 아직 100% 떨리지 않았다면, 관리자는 당신의 당김 요청에 대해 논평을 해서 무엇을 복구해야 하는지 알려줄 수 있습니다.
듣기에 괜찮은데, 그렇지?이제 우리는 이 점을 어떻게 하는지 배워야 한다.
인출 요청을 보내다
사실 나는 오늘 반드시 청구를 해야 한다.그것은 코드와 관련이 없을 정도로 매우 간단하다.나는 단지 자술 파일을 업데이트해서 팀원들에게 내가 더 이상 이 프로젝트에 적극적으로 참여하지 않는다는 것을 알게 할 뿐이다.우리 함께 이 요구를 제기합시다.
포크에게 가라!
나는 이 프로젝트에서 한동안 일했는데, 나는 이미 포크를 하나 가지고 있다.참여하고자 하는 프로젝트에 사용할 가닥이 없으면, 리셋 프로토콜의 오른쪽 상단에 있는 가닥 아이콘을 눌러서 가닥을 만들어야 합니다.
그리고 물론, 새로운 fork에서 git clone
을 실행할 것입니다 (상위가 아니라!)컴퓨터에 다운로드합니다.복제 후 로컬 재구매를 상위 재구매에 연결하려면 git remote add upstream insert_upstream_repo's_url_here
을 실행해야 합니다.완료되면 git remote -v
을 실행하여 원점과 업스트림 원거리를 동시에 보유할 수 있습니다.
이제 시작합시다!만약 네가 방금 새로운 포크를 복제했다면, 이 첫 번째 단계는 너에게 적용되지 않을 것이다.그러나 당신의 컴퓨터에 한동안 이 저장소가 있었다고 상상해 보세요. 당신이 지난번에 그것을 기부한 이래로 다른 사람들이 상류 환매에 대해 변경을 했습니다.아마도 그들이 작성한 코드는 네가 문제를 처리하는 방식에 영향을 줄 것이다.아마도 누군가가 이미 네가 해결해야 할 문제를 해결했을 것이다.어쨌든, 우리는 유행이 지난 코드를 사용하고 싶지 않다.우리가 어떤 일을 시작하기 전에, 우리는 컴퓨터에 최신 최신 코드가 있기를 바란다.
최신 코드 가져오기
최신 코드를 얻기 위해서 우리는 두 개의 명령을 실행할 것이다.우선, 우리는 반드시 상류에서 환매하는 코드를 다운로드해야 한다.방법은 다음과 같습니다.
git fetch --all
간단하죠?하지만 업스트림에서만 다운로드할 수 있도록 지정하려면 다음을 실행할 수 있습니다.
git fetch upstream
upstream
을 실행할 때 git remote add upstream whatever_the_upstream's_url_was
을 정의했기 때문에 주의하십시오.
지금 우리는 이미 상위 코드를 다운로드했다!하지만, 잠깐만요.우리의 코드는 보기에 별다른 차이가 없다.응, 우리는 이미 코드를 다운로드했지만, 우리는 여전히 그것을 로컬 프로젝트에 통합해야 한다.이제 이렇게 합시다.git merge upstream/master
걸출했어컴퓨터의 코드가 상위 환매의 주요 지점과 같다는 것을 지금 보셔야 합니다.잘했어, 이렇게 멀리 갔어.
마지막 단계!프로젝트가 npm나 Yarn 같은 것을 사용한다면, 지난번에 코드를 작성한 이후로 npm 패키지를 추가한 사람이 있을 수 있습니다.따라서 모든 것이 정상적으로 작동하기 위해서는 이 새 패키지를 추가해야 합니다.
npm install
*****OR*****
yarn install
"git pull은요?"
Git에는 git pull
명령이 있습니다. 명령은 실제로 요청과 무관합니다.이 명령은 우리가 방금 실행한 git fetch
과 git merge upstream/master
명령의 조합일 뿐이다.이 모든 Git의 내용은 사실 내가 말한 것보다 훨씬 복잡하기 때문에 원한다면 fetching과 pulling에 관한 내용을 더 많이 읽을 수 있다.
바꾸다
후!이제 새로운 기능의 코드를 작성합시다.우리가 새로운 특성을 작성할 때마다 가장 좋은 방법은 새로운 지점을 만드는 것이다.그렇다면, 만약 모든 것이 난마로 변했다면, 우리는 항상 우리의 주요 지점으로 돌아가서 탈출할 수 있을 것이다.
지점과 제출 사이의 내비게이션 과정을 git checkout
이라고 한다.다음은 새 브랜치를 만들고 바로 만들 수 있는 간단한 명령입니다.
git checkout -B your_new_branch_name_here
내가 말한 바와 같이, 나는 자술한 파일에서 나의 이름을 삭제할 것이다. 따라서 나는 나의 지점을 만들 것이다.
나는 자술한 파일을 변경한 후에 변경 사항을 제출하고 추진합니다.
주의, 내가 새로운 지점을 만들었기 때문에, 내가 운행하는 것은 checkout
이지 git push origin remove_daniel
이 아니다.여기 git push origin master
은 제 포크입니다.마찬가지로, 만약 당신이 길을 잃었다면, origin
은 당신의 친구입니다.
우리 거의 다 왔어!때가 됐는데...
실제 당김 요청
만약 내가 지금 Github에 가서 상류로 가서 환매한다면, 나는 다음과 같은 통지를 볼 수 있을 것이다.
고맙게도 Github는 일을 간단하게 만들었다.하지만 만약 당신이 어떤 이유로 이 통지를 보지 못했다면 문제없습니다!"Pull requests"옵션을 누르고 녹색의 "New Pull request"단추를 누르십시오.
우리는 어느 곳에서도 포크를 볼 수 없다. 이것은 우리가 반드시 포크를 뛰어넘어 비교해야 하기 때문이다.이제 기본 저장소와 헤더 저장소 두 개의 드롭다운 목록이 표시됩니다.이런 상황에서 기초 저장소는 상류에서 환매하는 것이고 머리 저장소는 나의 지점이 되어야 한다.따라서 나는 두 번째 그룹의 하단 목록으로 돌아가서 나의 환매와 지점을 선택한다.
마지막관리자가 변경 사항을 볼 수 있도록'요청 만들기'를 누르겠습니다.
요청 수락 및 병합
공교롭게도 나는 (현재) 내가 방금 참여한 환매의 보호자이다.따라서 관리자의 입장에서 볼 때 새로운 당김 요청은 다음과 같다.
관리자로서 변경 사항을 확인하려면 제출을 누르십시오.다른 것 외에 나는 또 평론을 발표할 수 있다.만약 내가 모든 것이 좋다고 생각한다면, 나는 합병 요청을 눌러서 이 과정을 완성할 것이다.
우리 끝났어!나의 갱신은 현재 상류에서 환매 중이다.요청이 처음부터 끝까지 실행되는 것을 보았으니, 요청의 개념을 풀어야 합니다.
도움이 됐으면 좋겠어요!
따라와, GitHub, 그리고.
Reference
이 문제에 관하여(fork 및 Pull 요청: Github 재구매에 기여하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/danieljwagener/forks-and-pull-requests-how-to-contribute-to-github-repos-2gdl
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사실 나는 오늘 반드시 청구를 해야 한다.그것은 코드와 관련이 없을 정도로 매우 간단하다.나는 단지 자술 파일을 업데이트해서 팀원들에게 내가 더 이상 이 프로젝트에 적극적으로 참여하지 않는다는 것을 알게 할 뿐이다.우리 함께 이 요구를 제기합시다.
포크에게 가라!
나는 이 프로젝트에서 한동안 일했는데, 나는 이미 포크를 하나 가지고 있다.참여하고자 하는 프로젝트에 사용할 가닥이 없으면, 리셋 프로토콜의 오른쪽 상단에 있는 가닥 아이콘을 눌러서 가닥을 만들어야 합니다.
그리고 물론, 새로운 fork에서
git clone
을 실행할 것입니다 (상위가 아니라!)컴퓨터에 다운로드합니다.복제 후 로컬 재구매를 상위 재구매에 연결하려면 git remote add upstream insert_upstream_repo's_url_here
을 실행해야 합니다.완료되면 git remote -v
을 실행하여 원점과 업스트림 원거리를 동시에 보유할 수 있습니다.이제 시작합시다!만약 네가 방금 새로운 포크를 복제했다면, 이 첫 번째 단계는 너에게 적용되지 않을 것이다.그러나 당신의 컴퓨터에 한동안 이 저장소가 있었다고 상상해 보세요. 당신이 지난번에 그것을 기부한 이래로 다른 사람들이 상류 환매에 대해 변경을 했습니다.아마도 그들이 작성한 코드는 네가 문제를 처리하는 방식에 영향을 줄 것이다.아마도 누군가가 이미 네가 해결해야 할 문제를 해결했을 것이다.어쨌든, 우리는 유행이 지난 코드를 사용하고 싶지 않다.우리가 어떤 일을 시작하기 전에, 우리는 컴퓨터에 최신 최신 코드가 있기를 바란다.
최신 코드 가져오기
최신 코드를 얻기 위해서 우리는 두 개의 명령을 실행할 것이다.우선, 우리는 반드시 상류에서 환매하는 코드를 다운로드해야 한다.방법은 다음과 같습니다.
git fetch --all
간단하죠?하지만 업스트림에서만 다운로드할 수 있도록 지정하려면 다음을 실행할 수 있습니다.git fetch upstream
upstream
을 실행할 때 git remote add upstream whatever_the_upstream's_url_was
을 정의했기 때문에 주의하십시오.지금 우리는 이미 상위 코드를 다운로드했다!하지만, 잠깐만요.우리의 코드는 보기에 별다른 차이가 없다.응, 우리는 이미 코드를 다운로드했지만, 우리는 여전히 그것을 로컬 프로젝트에 통합해야 한다.이제 이렇게 합시다.
git merge upstream/master
걸출했어컴퓨터의 코드가 상위 환매의 주요 지점과 같다는 것을 지금 보셔야 합니다.잘했어, 이렇게 멀리 갔어.마지막 단계!프로젝트가 npm나 Yarn 같은 것을 사용한다면, 지난번에 코드를 작성한 이후로 npm 패키지를 추가한 사람이 있을 수 있습니다.따라서 모든 것이 정상적으로 작동하기 위해서는 이 새 패키지를 추가해야 합니다.
npm install
*****OR*****
yarn install
"git pull은요?"
Git에는
git pull
명령이 있습니다. 명령은 실제로 요청과 무관합니다.이 명령은 우리가 방금 실행한 git fetch
과 git merge upstream/master
명령의 조합일 뿐이다.이 모든 Git의 내용은 사실 내가 말한 것보다 훨씬 복잡하기 때문에 원한다면 fetching과 pulling에 관한 내용을 더 많이 읽을 수 있다.바꾸다
후!이제 새로운 기능의 코드를 작성합시다.우리가 새로운 특성을 작성할 때마다 가장 좋은 방법은 새로운 지점을 만드는 것이다.그렇다면, 만약 모든 것이 난마로 변했다면, 우리는 항상 우리의 주요 지점으로 돌아가서 탈출할 수 있을 것이다.
지점과 제출 사이의 내비게이션 과정을
git checkout
이라고 한다.다음은 새 브랜치를 만들고 바로 만들 수 있는 간단한 명령입니다.git checkout -B your_new_branch_name_here
내가 말한 바와 같이, 나는 자술한 파일에서 나의 이름을 삭제할 것이다. 따라서 나는 나의 지점을 만들 것이다.나는 자술한 파일을 변경한 후에 변경 사항을 제출하고 추진합니다.
주의, 내가 새로운 지점을 만들었기 때문에, 내가 운행하는 것은
checkout
이지 git push origin remove_daniel
이 아니다.여기 git push origin master
은 제 포크입니다.마찬가지로, 만약 당신이 길을 잃었다면, origin
은 당신의 친구입니다.우리 거의 다 왔어!때가 됐는데...
실제 당김 요청
만약 내가 지금 Github에 가서 상류로 가서 환매한다면, 나는 다음과 같은 통지를 볼 수 있을 것이다.
고맙게도 Github는 일을 간단하게 만들었다.하지만 만약 당신이 어떤 이유로 이 통지를 보지 못했다면 문제없습니다!"Pull requests"옵션을 누르고 녹색의 "New Pull request"단추를 누르십시오.
우리는 어느 곳에서도 포크를 볼 수 없다. 이것은 우리가 반드시 포크를 뛰어넘어 비교해야 하기 때문이다.이제 기본 저장소와 헤더 저장소 두 개의 드롭다운 목록이 표시됩니다.이런 상황에서 기초 저장소는 상류에서 환매하는 것이고 머리 저장소는 나의 지점이 되어야 한다.따라서 나는 두 번째 그룹의 하단 목록으로 돌아가서 나의 환매와 지점을 선택한다.
마지막관리자가 변경 사항을 볼 수 있도록'요청 만들기'를 누르겠습니다.
요청 수락 및 병합
공교롭게도 나는 (현재) 내가 방금 참여한 환매의 보호자이다.따라서 관리자의 입장에서 볼 때 새로운 당김 요청은 다음과 같다.
관리자로서 변경 사항을 확인하려면 제출을 누르십시오.다른 것 외에 나는 또 평론을 발표할 수 있다.만약 내가 모든 것이 좋다고 생각한다면, 나는 합병 요청을 눌러서 이 과정을 완성할 것이다.
우리 끝났어!나의 갱신은 현재 상류에서 환매 중이다.요청이 처음부터 끝까지 실행되는 것을 보았으니, 요청의 개념을 풀어야 합니다.
도움이 됐으면 좋겠어요!
따라와, GitHub, 그리고.
Reference
이 문제에 관하여(fork 및 Pull 요청: Github 재구매에 기여하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/danieljwagener/forks-and-pull-requests-how-to-contribute-to-github-repos-2gdl
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(fork 및 Pull 요청: Github 재구매에 기여하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/danieljwagener/forks-and-pull-requests-how-to-contribute-to-github-repos-2gdl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)