왜“GitHub에서 나를 포크”합니까? [닫은]


50

GitHub의 작동 방식을 이해 하지만 혼란스러워 한 가지 이유는 거의 모든 OSS 프로젝트가 최근에 홈페이지에 "GitHub에서 포크"링크를 갖는 이유 입니다. 예를 들어

http://jqtjs.com/ , http://www.daviddurman.com/flexi-color-picker/ 및 기타

이것이 왜 흔한가? 그들이 어떻게해야 할 지 모르는 보안 / 성능 향상을 점검하면서 코드 검증을 원하거나 필요로 하는가?

이것이 공동 프로젝트임을 보여주기위한 것입니까? 개선을 환영합니다.

그들은 GitHub에서 일하거나 서비스를 홍보하고 싶습니까? 이상하게도 최근에 " Buckbucket의 Fork project "로고를 본 적이 없다고 생각 합니다.

이 로고에 대한 나의 첫 번째 반응은 프로젝트를 유용한 것으로 통합하기 위해 프로젝트를 수정 (포크)해야한다는 것입니다. 그러나 나는 그것이 의도라고 생각하지 않습니다.


23
"이 프로젝트에 참여하거나 소스를 확인하려면 github의 저장소를 확인하십시오"라고 작성하는 것보다 쉽습니다. ;-)
nietonfir

1
나는 아무도 언급하지 않은 것에 대해 조금 놀랐습니다. 풍자, 빗대 어하는 말, 빈정 거림? 그러나 해당 특정 표현은 비트 버킷에서 작동하지 않습니다. 그들의 사이트는 github보다 더 전문적인 분위기를 제공합니다. '그게 내가 처음 읽을 때 당신의 질문을 어떻게 이해했는지 – 왜 비트 버킷에 이것들이 없는가?'
Izkata

2
그들은있는 사회 위젯 많이 SE 질문 / 답변에서 '공유'링크가 나타나는 것과 같이 : Google+에, 페이스 북과 트위터에 대한 위젯을 얻는다. 사이트 디자이너가 사용할 준비가되어 있으므로 쉽게 통합 할 수 있습니다. Bitbucket과 같은 것은 없다고 생각하므로 주목할 사항이 없습니다. 프로젝트에 자체 제작 한 'fork me'위젯이 있으면 다른 프로젝트처럼 보이지 않을 것입니다.
Luc Danton

이 질문은 오픈 소스 소프트웨어 문화에 관한 것이므로 주제를 벗어난 주제로 마무리하려고합니다. 현재 지역 사회가 오픈 소스 프로젝트를, 생산, 시장을 배포하고 언젠가는 수익을 창출하기 위해 함께 협력 방법에 대한 질문입니다 에 주제 오픈 소스 스택 거래소에 .
Thomas Owens

답변:


20

비즈니스 관점에서 GitHub의 트래픽, 사용자 기반 및 시장 위치를 ​​강화하고 강화할 것입니다. 따라서 이와 관련된 비즈니스 전략도 있습니다.

GitHub가 오픈 소스 커뮤니티에 귀중한 서비스를 제공하기 때문에 개인적으로 나는 이것을 신경 쓰지 않습니다.


23
GitHub의 관점에서 당신의 대답은 왜입니까? 사람들은 GitHub의 트래픽, 사용자 기반 및 시장 위치를 ​​강화하기 위해 사이트에 해당 로고를 넣지 않습니다. 이는 부작용 일 수 있지만 목적 은 아닙니다 . 이것이 GitHub "비즈니스 전략"은 어떻습니까? GitHub는이 로고를 OSS 사이트 (OSS 사이트 관리자)에 게시 할 책임이 없습니다.
Ben Lee

3
@Ben Lee 댓글이 잘 작성되었습니다. 그러나 나는 하나의 목적이 아니라 많은 것이 있다고 주장한다 . 나는 공동 작업을 장려하는 것이 목적이라는 견해를 묵살하지 않았으며, 단순히 GitHub도 비즈니스라는 점을 인정해야합니다 . GitHub 는 전략적 이점을 제공합니다. 이것은 자발적이지만 그럼에도 불구하고 효과적입니다. 인터넷 비즈니스 전략의 핵심 인 인터넷에서 GitHub를 더 잘 보이게합니다.
AsymLabs

2
@BenLee dmitri가 언급 한 것처럼 Github에는 다음 페이지가 있습니다. github.com/blog/273-github-ribbons Bitbucket 또는 다른 서비스에 비슷한 점이 있습니까?
NoBugs

75

이것이 공동 프로젝트임을 보여주기위한 것입니까? 개선을 환영합니다.

예 : 귀하는 리포지토리에서 직접 커밋을 푸시 할 권리가 없습니다.
하지만 당신은 할 수있는 가능성이 할 자신의 repo 포크 그것을 만드는, 당신의 준비, 거기에서 커밋 REPO을 밀어 풀 요청을 .

포크


2
나는 당신이 포크를 할 수 있다는 것을 알고, Github에 요청을 내린다. 내 질문은 그들이 왜 "Github에 포크"라고 말하는가?
NoBugs

6
@NoBugs는 프로젝트에 기여하는 방법을 알려줍니다.
VonC

19
여기에 초점은 Github보다는 "fork me"에 더 중점을두고 있다고 생각합니다. 아마도 Github가 가장 인기있는 사이트이기 때문일 것입니다. Bitbucket을 포크하면 아무도 큰 문제가 없다고 생각합니다. 어쨌든 좋은 질문입니다.
JensG

gitorious.org에 포크하면 큰 문제가 있다고 생각하지 않습니다 . 그것은 거의 아무도하지 않습니다 ...
Michael Paulukonis

37

"Github에서 Fork me"배지는 프로젝트에 참여하거나 자신의 프로젝트의 시작점으로 사용할 수있는 권한이 부여 된 프로젝트임을 보여주기위한 것입니다.

"이것은 공동 프로젝트이며 개선을 환영합니다."

코드를 가지고 놀거나 원래 소스에 영향을주지 않고 동일한 프로젝트를 스핀 오프 할 수 있습니다.

https://help.github.com/articles/fork-a-repo

다른 모든 git 호스트에도 동일한 원칙이 적용됩니다.

프로젝트 포크 권한을 부여하는 주요 요점은

  • 협업 강화-사람들이 프로젝트 개선에 협력 할 수 있도록합니다.
  • 사람들이 귀하의 코드를 연구 할 수 있도록하여 지식을 추가하십시오.

Github 직원이 개인적으로 필요로하는 프로젝트 중 일부가있을 수 있습니다. 그들은 github를 홍보하고 싶지 않습니다. github에서 프로젝트를 찾을 수 있습니다 : https://github.com/github

다른 호스트에서 배지를 볼 수없는 이유는 Github이 가장 인기있는 git 호스팅 및 협업 플랫폼이기 때문입니다.


바로 그거죠. DVCS 워크 플로우는 다른 사람에게 영향을주지 않으면 서 결과를 게시 할 수 있음을 의미합니다. 포크는 공유하고 싶은 것을 공유하기 위해 권한을 요구할 필요가 없음을 의미합니다. 인터넷이 변경 사항을 좋아하면 변경 사항을 흡수합니다.
Warren P

15

자주 사용하는 텍스트 편집기를 사용한다고 가정하고 얼마 후에 비 차단 파일 저장 옵션과 같은 일부 기능을 실제로 구현하고 싶을 것입니다.

열한 번째 시간 동안 당신은 스스로 작성하기로 결정했습니다. 이 프로젝트의 github 페이지를 찾으면 두 가지 옵션이 있습니다.

  1. 소스 코드를 다운로드하여 수정 한 후 직접 보관하십시오.
  2. github에서 프로젝트를 포크하고 포크로 작업하십시오.

두 번째 옵션을 선택한 경우 기능을 잘 작성하고 테스트 한 후에 풀 요청을 준비하면 전체 프로젝트가 도움이됩니다.

첫 번째 경로를 선택한다면,이다 매우 당신이 당신이 (그것으로부터 혜택 그래, 당신은 수동으로 코드를 공유 할 수 있지만 다른 코더 쉽게 잊지 수 제외하고 수정 아무도 잊지 가능성이 높습니다. github에 사용 상대방의 작업에 더 친밀감 을 갖도록 강요하고 있습니다 ).

'github에서 포크하십시오'프로젝트 소유자 Fork on github는 코드를 다운로드하고 홈 디렉토리에 게시 하는 대신 선택했는지 확인하고 싶습니다 .


7

이 프로젝트가 오픈 소스 프로젝트임을 보여주기 위해 필요한 이유가 무엇이든 원하는 경우 포크합니다. 또한 GitHub에서이 블로그 게시물을 확인하십시오 : https://github.com/blog/273-github-ribbons

업데이트 : 개인적으로 사람들이 GitHub에서 나를 찾을 수 있도록 내 GitHub 리본을 추가하고 내 프로젝트에 별표를 표시합니다.)


6

그것은 그들이 포크가 싼 github에 있고 소프트웨어와 커뮤니티를 개선하기 위해 기여를 장려하고 싶다는 것을 의미합니다.


5

Github은 소스 코드 호스팅뿐만 아니라 모든 공동 작업을 포함하도록 사용자 기반을 넓히려 고 노력하고 있습니다. 따라서 그들은 포크 를 밀고 당겨 요청 방법을 보냅니다 . 패치를 작성하고 이메일을 통해 전송하는 것은 프로그래머와 같은 사람들이 아닌 다른 사람들에게는 매력적이지 않습니다. 푸시 권한은 여기서 중요하지 않습니다. 결국 툴 및 개발 워크 플로우에 대해 상당한 지식을 가진 git (또는 수은, darc 또는 기타) 사용자 대부분은 패치가 첨부 된 이메일을 어떻게 든 첨부 할 수 있기 때문입니다.

또한 Github는 코드 호스팅보다 소셜 네트워킹에 관한 것입니다. 프로필, 리포지토리 및 변경은 트윗 및 '+1'과 같이 소프트웨어 개발자로서의 정체성을 구성합니다. 이러한 모든 리본과 버튼은 자체 캔바스의 수단으로 사용되며 프로젝트가 속한 사람의 프로필 경로입니다. 요즘에는 괜찮은 Github 프로파일을 갖는 것이 개발자에게 가장 먼저 예상되는 것입니다. 어떤 용도로든 수은을 사용하더라도 이러한 이유로 hg-git을 통해 Github으로 푸시합니다.

결국, "Github에서 Fork me"리본은 "Tweet this Article"또는 "G +에서이 내용 공유"버튼과 목적이 약간 다릅니다. (리포지토리 목록에 리포지토리 포크가 있다는 것은 "저는이 사용자입니다"라는 의미입니다. Linus Torvalds가 풀 요청을 수락하지 않더라도 github에는 수천 개의 Linux 포크가 있습니다.)


2

"패치를 환영합니다"라고 말하는 또 다른 방법입니다.

소원과 기능 요청을 보내는 대신 사람들은 원래 작성자가 풀 요청을 검토하고 확인하고 병합하는 경우 풀 요청을 보낼 수 있습니다.

역사적으로 포크는 원래 프로젝트 관리와 충돌하는 그룹이 수행하는 적대적인 행동입니다. 예를 들어 Sun의 OpenOffice는 정치적 이유로 자체 느리게 끊어진 Java 기반 플러그인을 선호하기 때문에 빠른 C / C ++ SVG 플러그인을 거부하는 데 사용되었습니다.

대부분의 경우 포크는 나쁘고 부러워하는 사람이나 원래 커뮤니티와 공유되지 않고 계획과 일치하지 않는 계획을 가진 이기적인 회사의 사람들 (예 : Canonical )이 가지고 있으며 그 예는 libav / avconv (이는 FFMPEG의 포크),이 경우 원래 커뮤니티는 더 높은 품질과 보안을 제공 하며 커뮤니티 계획에 맞는 패치를 환영합니다.

Dan Walsh는 포크의 오래된 정의에 주목 했습니다.

나는 오랫동안 오픈 소스에 있었고, "포크"에 대한 나의 정의는 날짜가있을 수있다. "포크"는 한 그룹이 다른 그룹이 업스트림 프로젝트의 버전을 사용하고 기여하고 "원본"버전을 무시하도록하는 적대적인 행동이라고 생각합니다. 예를 들어, LibreOffice는 OpenOffice를 분기하거나 Xorg를 Xfree86에서 분기합니다.

그런 다음 github의 포크와 비교했습니다.

요즘 GitHub는 그 의미를 바꿨습니다. 소프트웨어 저장소가 GitHub 또는 유사한 플랫폼에 존재하는 경우, 기여하고자하는 모든 사람은 "포크"버튼을 누르고 패치 빌드를 시작해야합니다. 이 글을 쓰는 시점에서 GitHub의 Docker에는 9,860 포크가 있습니다. 그러나이 정의에 따라 패치가 포함 된 배포판이 제공하는 모든 패키지는 포크입니다. Red Hat은 Linux Kernel을 제공하지만 포크라고하는 것을 듣지 못했습니다. 그러나 패치와 함께 제공되는 업스트림 프로젝트를 고려할 경우 "포크"로 간주됩니다.


1

이것이 공동 작업이라는 모든 응답은 다음과 같이 질문합니다. " GitHib에서 복제 "또는 "GitHub에서 .zip 다운로드" 라고 말하지 않는 이유

GitHub에서 포크 수를 볼 수 있습니다. 그러나 내 지식으로는 복제 또는 zip 다운로드 수는 아닙니다.

따라서 공동 작업을 장려하고 사람들이 귀하의 코드를 사용하고 있다는 피드백과 유효성 검사를 얻는 것이 부분적으로 중요하다고 말하고 싶습니다.

추신 : 나는 GitHub에 상당히 익숙하지 않다.


풀 버전 요청은 분산 버전 제어가 작동하는 방식입니다. 물론 먼저 레포를 포크 한 다음 포크에 커밋 한 다음 공유 할 가치가있는 항목을 만들면 풀 요청을 발행해야합니다. "원래 프로젝트로"
Warren P

1
내가 실제로 자식을 "얻지"않는다는 것을 인정해야한다. zip 파일을 복제하거나 가져 와서 변경 한 경우 원하는 VCS를 설정해야하는 이유는 무엇입니까? 드문 경우지만 나는 모든 사람에게 유익한 변화를 주었고, 이메일에 의존하거나 포크를 할 수있었습니다.
user949300

이 답변은 모순입니다. 당신은 그들이 협력을 장려하려고 노력하는 것이 옳습니다. 이러한 링크의 핵심은 사람들에게 프로젝트를 다운로드 할 수있는 장소를 제공하는 것이 아니라 프로젝트 개발에 참여하게하는 것입니다. 그들은 단지 자신을 위해 사본을 원한다면 zip을 다운로드하거나 복제 할 수 있지만, 사본이 업스트림 프로젝트에 기여할 수있는 경로를 갖기를 원한다면 업스트림이 기여를 끌어낼 수있는 포크를 통해 수행됩니다. 에서.
Caleb

@ user949300, 당신은 여전히 ​​사용 git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.git하고 git format-patch master이메일 등을 통해 보낼 수 있습니다
Sebastian Godelet

0

github에서 포크하면 트위터에서 나를 팔로우하는 것처럼 말하는 것이 정말 쉽습니다. 나는 내 자신의 perspe ctive에서 개발 세계에 약간의 사회화를 가져오고 오픈 소스이며 수정이 가능하다는 것을 분명히합니다. 프로젝트 웹 사이트


음 아니요.이를 위해 repos에는 'star'와 'watch'가 있으며 사용자에게는 'follow'가 있습니다. 포크의 요점은 단지 사회적인 것이 아니라 특정 종류의 행동을 권장하는 것입니다.
Caleb

0

가장 간단한 대답을 취하는 것이 가장 좋습니다 .GitHub에서 코드를 자유롭게 사용할 수 있기를 바랍니다. 나는 당신의 가설이 약간 과장된 것 같아요.


이것은 실제로 이해되는 가장 간단한 대답입니다.
Woland
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.