Git 고수님.. 질문있습니다. (오픈소스 이용시 버전 컨트롤)

stylix의 이미지

Git을 의무적으로 사용하긴 하지만 아직 제대로 활용하지는 못하는 초보입니다.
제가 오픈소스를 하나 사용하려고 하는데요...
거기에는 저에게는 불필요한 기능이 많아서 그것들을 제거하고
또 저한테 필요한 기능중에 없는 것들을 추가하면서 사용하려고 합니다.
그런데 만약 원래 프로젝트 개발자들이 파일을 업데이트했을 때, 그게 만약 저에게 필요한 기능이라면 저도 반영을 하고 싶은데요.
이렇게 하려면 브랜지 전략?을 어떻게 짜야 하는지요?

제가 필요에 의해 수정하는 부분들은 원래 프로젝트와 무관하니 "브랜치"가 아니라 (푸시할 수도 없는 것이고..) 새로운 저장소로 시작해야 할 것 같은데
그러면 원래 개발자들이 업데이트하는 것들을 반영하는 작업이 눈으로 직접 코드를 라인 by 라인으로 비교해야 할 것 같은데...

괜찮은 방법 없을까요? (오픈소스 이용자들에게는 분명 이런 요구사항들이 있을 듯한데요...)

peecky의 이미지

다음 두 글을 참고해보세요. (upstream이 원래 프로젝트의 저장소라고 보면 됩니다.)

git 원격 저장소 추가: https://help.github.com/articles/configuring-a-remote-for-a-fork/
원래 프로젝트의 변경된 내용을 내 프로젝트에 합치기: https://help.github.com/articles/syncing-a-fork/

stylix의 이미지

답변 감사합니다.
그런데 제가 사용하려는 프로젝트는 Github가 아닌 자체 Git 서버를 사용하더군요
이 경우에도 위의 방법을 사용할 수 있나요?
포크 버튼 같은 건 없고 주소만 있어서 그냥 로컬에 복제해 훓어보고 있습니다...

pokev25의 이미지

기본 원리는 같다고 보시면 됩니다.

fork를 지원하지 않는 저장소는 단지 조금 불편할 뿐입니다.

1. 원본 저장소에서 소스를 clone, original로 하지 않고 upstream으로 지정함
2. clone한 소스를 원하는 대로 수정
3. 내 저장소에 push, original로 지정

원본 저장소에 추가된 기능을 합치는 경우

1. 브랜치 생성
2. upstream에서 pull
3. 소스 정리
4. 브랜치 병합 push

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.