이 문서는 "Git가 무엇인지"부터 "모두가 내 새로운 캐릭터 시트를 사용해야 한다!"까지 가능한 빠르게 이동하기 위한 간단하고 베어본 가이드입니다. 시스템의 복잡성을 가르치려 하지 않고 단지 업데이트를 마스터 Roll20 저장소로 이동하는 데 초점을 맞추었습니다. Git는 버전 관리 소프트웨어입니다. 그러나이 가이드에서는 변경 내용을 추적하는 방법을 완전히 무시하고 업데이트를 마스터 Roll20 저장소로만 이동하는 방법에만 초점을 맞춥니다. "추가 정보" 섹션에는 일반적인 Git/GitHub 작동 방식에 대한 가이드 링크가 포함되어 있습니다.
Git/GitHub란 무엇인가요?
Git 은 컴퓨터에 로컬로 설치하는 소프트웨어로, 버전 관리를 처리해줍니다. GitHub 은 Git 저장소의 호스팅 서비스입니다. 따라서, 둘은 같은 것이 아닙니다: Git 은 도구이고, GitHub 은 Git 을 사용하는 프로젝트를 위한 서비스입니다. 간단한 비교.
Git을 사용하는 여러 가지 다른 방법이 있습니다. Git은 매우 강력하지만, 그것을 최대한 활용하기 위해서는 명령 셸(xkcd 만화) 사용법을 배워야 합니다. 하위에 있는 "추가 정보" 섹션에는 명령 셸에 대한 추가 독서 자료가 있습니다. 그러나, 이 문서를 통해 안내할 모든 작업은 GitHub 데스크톱 GUI(컴퓨터 하드 드라이브를 리포지토리와 동기화하는 데 매우 효과적인 도구 - 아래의 "리포지토리 복제" 참조)와 GitHub 웹 도구만을 사용하여 수행할 수 있습니다. 두 도구 모두 기본적인 Git을 사용하는 간소화된 도구입니다.
GitHub 설정
계정 만들기
GitHub를 사용하려면 웹 사이트에 계정이 있어야 합니다. 유료 계정을 만들 수도 있고 무료 계정을 만들 수도 있습니다. 세계와 공유하고 싶지 않은 많은 프로젝트를 만들 계획이 없다면, 유료 계정을 만들 이유가 없습니다: 다양한 가격 수준 사이의 유일한 차이점은 허용되는 개인 저장소의 수입니다. 모든 사람, 무료 계정 포함, 무제한 수의 공개 저장소를 가질 수 있습니다.
roll20-character-sheets 및/또는 roll20-api-scripts에 대한 마스터 Roll20 저장소를 다룰 것입니다. 이 저장소들은 공개 저장소입니다. 또한 이러한 저장소들의 포크를 만들 것입니다. 이 포크도 공개 될 수 있으므로 Roll20 사용을 위해서는 무료 계정만 필요합니다.
공식 Roll20 저장소를 포크하세요.
포크는 저장소의 사본입니다.포크입니다. 저장소를 포크하면 원본 프로젝트에 영향을 주지 않고 자유롭게 변경사항을 실험할 수 있습니다.
포크는 GitHub 웹 도구를 사용하여 쉽게 수행할 수 있습니다. 공식 저장소의 포크 버튼을 클릭하십시오. 해당 버튼은 다음 위치에 있습니다. https://github.com/Roll20/roll20-character-sheets 또는 https://github.com/Roll20/roll20-api-scripts 에 따라 다릅니다. 이것은 귀하의 계정에 해당 리포지토리의 사본을 생성하며, 원하는대로 변경할 수 있는 권한이 있습니다. 리포지토리를 원하는 만큼 여러 번 포크할 수 있지만, 한 번만 포크하려면 이 필요합니다. 이 새로운 리포지토리는 원본과 동일한 주소를 가지지만, "Roll20" 대신에 귀하의 롤20 계정 이름이 루트로 설정됩니다.
동일한 시트나 스크립트를 사용하는 다른 사용자와 작업 중이라면, 새로운 리포지토리의 설정으로 이동하여 협력자로 추가하는 것이 좋습니다. 협력자를 추가하거나 협력자와 함께 작업하는 방법에 대한 자세한 내용은 이 튜토리얼의 범위를 벗어납니다.
Git 버전 관리 시스템에 익숙하다면 캐릭터 시트 제출을 완료하기 위해 다른 정보가 필요하지 않을 것입니다. 다른 모든 사람들은 계속 읽으세요!
리포지토리 복제
리포지토리를 복제하면 사본도 만들어지지만, 복제된 리포지토리는 작업 사본으로 사용되며 로컬 컴퓨터 하드 드라이브에 일반 폴더 및 파일로 저장됩니다. Git은 복제된 폴더와 리포지토리 간의 링크(기본적으로 "origin"이라고 함)를 유지합니다.
Git 초보자를 위해,GitHub for Windows또는GitHub for Mac을(를) 다운로드하고 설치하는 것이 강력히 권장됩니다. 운영 체제에 적합한 것을 선택하십시오. 이 문서에서는 이후로 "GitHub Desktop" 또는 "데스크톱 앱"이라고 지칭됩니다. GitHub 데스크톱 애플리케이션은 컴퓨터에 Git 버전 관리를 간단하게 설치하고 설정하는 방법 외에도 GitHub 사용자 계정에 링크하는 것이 쉽습니다. GitHub 데스크톱은 컴퓨터의 파일이 GitHub의 저장소와 동기화되지 않은 경우에 알려주고 두 개를 쉽게 동기화할 수 있도록 합니다.
GitHub 애플리케이션을 처음 실행하면 GitHub 계정에 로그인하라는 메시지가 표시됩니다. 그런 다음, 왼쪽 상단의 큰 더하기 기호를 클릭하여 저장소를 복제합니다. 저장소를 복제할 때 파일을 넣을 위치를 선택하라는 메시지가 표시됩니다. 쉽게 찾을 수 있는 위치를 선택하십시오. 위치를 알아야 합니다! 새 컴퓨터를 사용하는 경우 GitHub 데스크톱을 설치하고 저장소를 복제하는 것만 반복해야 합니다.
데스크톱 앱은 브랜치를 관리하기 가장 쉬운 인터페이스를 가지고 있습니다. 데스크톱 애플리케이션에서 브랜치를 전환하면, 마지막 커밋과 일치하도록 파일을 추가/제거/변경합니다.
GitHub 애플리케이션을 사용하지 않는 경우, 리포지토리의 복제 URL을 리포 페이지에서 찾을 수 있습니다. GitHub는 SSH 및 HTTPS 복제 URL 및 Subversion 체크아웃 URL을 제공합니다. 리포지토리를 수동으로 복제하는 방법의 세부 사항은 이 안내서의 범위를 벗어납니다.
GitHub Forking Workflow
위의 설정은 한 번만 수행됩니다. 다음 섹션에서는 Roll20에 업데이트를 제출할 때 권장되는 절차에 대해 설명합니다.
Roll20과 파일 동기화
몇 분 전에 리포지토리를 포크하고 복제했다면, 아직 동기화되어 있습니다. 하지만 몇 주 또는 몇 달 후에 귀하는 리포지토리로 돌아오면 일부 캐릭터 시트나 모드 (API) 스크립트가 업데이트되었을 수도 있습니다. 수정하려는 파일이 그 중에 있는 가능성이 있습니다. 그 경우에는 수정할 파일의 최신 버전을 사용하고 있는지 확인해야합니다. 다시 만들 필요도 없고 저장소를 다시 클론할 필요도 없습니다. 포크를 최신 버전으로 업데이트해야합니다. 아래 링크된 가이드를 읽어보세요.
필요한지 여부에 상관없이 프로젝트를 동기화해야하는지 먼저 확인해보는 것이 좋습니다. Roll20 저장소의 파일을 확인하고 마지막 수정 날짜를 확인하는 것이 쉬운 방법입니다. 또 다른 방법은 파일을 열고"diff" 유틸리티를 실행하여 해당 파일과 가장 최근 버전을 확인하는 것입니다. 수정할 파일에 대기 중인 풀 리퀘스트가 있는지 확인하세요. 마지막 동기화 이후 수정되지 않은 특정 파일이 있다면 모든 것을 동기화하는 것은 선택사항입니다.
또 다른 옵션은 master Roll20 저장소에서 모든 업데이트를 가져오는 것입니다. 이렇게 하면 마지막으로 동기화했던 roll20 리포지토리에 다른 사람들이 한 업데이트를 모두 받을 수 있습니다 (당신이 관심이 없을지도 모르는 캐릭터 시트나 모드 (API) 스크립트들 포함). 이 링크에는 원본과 동기화하는 방법에 대한 안내서가 있습니다. 이 작업을 완료하면 Roll20 마스터 리포지토리, 자체 리포지토리 및 하드 드라이브의 파일이 모두 동일해야 합니다. Roll20 캠페인도 업데이트해야 합니다.
브랜치 만들기
모든 개별 프로젝트(캐릭터 시트 또는 모드 (API) 스크립트)마다 새 브랜치를 만드는 것이 좋습니다. 예를 들어, 한 번에 두 가지 다른 모드 (API) 스크립트를 업데이트할 예정이라면, 각 스크립트에 대해 브랜치를 만드세요. 몇 주 후에 동일한 스크립트에 추가 변경 사항을 가하려는 경우, 새로운 브랜치를 만드세요. 일반적으로 각 풀 요청마다 새로운 브랜치를 만드세요.
데스크톱 앱은 브랜치 관리에 가장 쉬운 인터페이스를 제공합니다. 상단 메뉴에서 "Branch / New branch"를 선택하세요. 데스크톱 애플리케이션 내에서 브랜치를 전환할 때(두 번째 줄은 작업 중인 리포지토리와 현재 브랜치를 전환할 수 있게 해줍니다), 전환한 브랜치에서 마지막 커밋과 일치하도록 하드 드라이브의 파일을 추가/제거/변경합니다.
변경 사항을 커밋하고 커밋을 푸시하세요.
변경 내용을커밋하면 변경한 모든 내용과 사람이 읽을 수 있는 설명이 로컬 컴퓨터에 저장됩니다.
그런 다음커밋을 리포지토리에 푸시합니다.
리포지토리의 작업 복사본이 복제되면 이를 변경할 수 있습니다. 캐릭터 시트 또는 모드 (API) 스크립트용 새 폴더를 만들고 소스 코드를 추가하거나 이미 있는 파일을 수정하는 것이 필요합니다.
많은 사람이 Roll20 스크립트나 캐릭터 시트를 개발할 때 텍스트 편집기(예: 메모장++)에서 모든 실제 편집 작업을 수행합니다. 하드 드라이브에 있는 파일('복제' 단계에서 만든 파일)을 텍스트 편집기에서 열고 편집기에서 변경하기만 하면 됩니다. Roll20에서 코드를 실행할 때마다 ctrl/a와 ctrl/c를 눌러 모든 텍스트를 선택하고 클립보드에 복사합니다. 그런 다음 올바른 Roll20 캠페인 필드에 붙여넣습니다. 추가 변경이 필요한 경우(예: 디버깅) 편집, 복사, 붙여넣기, 테스트를 계속 반복하는 것이 가장 쉬운 방법입니다.
텍스트 편집기에 변경 사항을 저장하라는 명령을 내리면, 최종적으로 편집 중인 파일에 변경 사항이 기록되고 GitHub Desktop은 변경된 파일의 이름을 왼쪽 창에 표시하고 현재 저장과 마지막으로 커밋된 내용 간의 차이를 요약하여 오른쪽 창에 표시합니다. 하지만 이러한 변경 사항은 감지되었을 뿐, GitHub은 실제로 이러한 변경 사항을 기록하지 않습니다. 변경 사항을 커밋하기 전까지는. Git 전문가들은 커밋을 자주하는 것을 권장합니다. 커밋을 하면 작업의 오프사이트 백업과 각 커밋의 기록이 생성됩니다.
요약 없이는 어떠한 변경 사항도 커밋할 수 없지만, 설명은 선택 사항입니다.
커밋하는 것은 매우 간단합니다. 데스크톱 앱은 이미 커밋해야 할 내용을 식별하는 모든 작업을 완료했습니다. 변경 사항의 제목을 입력하고선택적으로더 긴 설명을 입력한 후 "(브랜치에) 커밋" 버튼을 눌러 변경 사항을 커밋합니다. 작업 브랜치에 커밋을 수행하는 것이 중요합니다. 마스터 브랜치에 커밋하지 마세요. 자주 커밋하는 것은 변경 내역에 대한 자세한 기록을 제공합니다. 모든 작업을 완료한 후에 한 번에 모든 것을 커밋하는 대신에요. 요약에는 길이 제한이 있음을 유의하세요. 하지만 제한을 초과하면 메시지가 자동으로 더 긴 설명으로 넘어갑니다. 요약 필드의 텍스트가 회색으로 변하는 것을 확인할 수 있습니다.
커밋을 수행하면 GitHub 데스크톱에서 '로컬 변경 사항 없음'이라는 큰 알림이 표시됩니다. 커밋을 푸시하라는 제안도 표시됩니다. 또는 '브랜치 게시'를 제안할 수도 있습니다. 변경 사항을 커밋하면 여전히 컴퓨터에만 저장됩니다. GitHub에 이러한 변경 사항을 가져오려면 원본인 리포지토리로 푸시해야 합니다. 단순히 '원본 푸시' 또는 '브랜치 게시' 버튼을 누르세요. 또는 언제든지 원본과 클론이 구버전일 경우 오른쪽 상단에 번호와 화살표가 있는 매우 잘못 레이블링된 버튼이 있을 수 있습니다. 그렇게 하면 리포지토리와 클론 간의 모든 것을 동기화할 수 있으므로 대신 푸시할 수 있습니다. 데스크톱 도구 상단에 있는 드롭다운 메뉴 항목 "Repository - Push"도 작업을 완료할 수 있습니다.
변경 사항이 완료되고 코드를 테스트하고 디버깅한 후에 제출할 준비가 되었을 때까지 편집하고 커밋을 계속하세요. 그러면 나머지 roll20 사용자들도 즐길 준비가 된 코드가 됩니다. 이제 roll20 사이트 관리자들에게 변경 사항을 'pull'하도록 요청할 준비가 되었습니다. 이는 공식 roll20 마스터 저장소로 변경 사항을 가져오는 것입니다.
PULL 요청 생성
이름에서 알 수 있듯이풀()은 푸시의 반대입니다. 복사된 저장소가 원본에 커밋을 보내는 대신, 원본이 복사본으로부터 커밋을 요청합니다.
저장소 웹 페이지에는 "비교, 검토, pull 요청 생성"라고 적힌 녹색 버튼이 있습니다. 이 버튼에 마우스를 올리면 해당 페이지로 이동합니다. 이 버튼을 클릭하면 pull 요청을 생성할 수 있는 페이지로 이동합니다. 저장소(헤드)와 Roll20의 저장소 버전(베이스) 간에 차이가 있다면 여기에 표시됩니다. (주변의 "편집" 버튼을 클릭하여 헤드와 베이스로 사용할 내용을 변경할 수 있다는 점에 유의하세요.) 변경 사항이 모두 작업 브랜치에 있으므로 pull 요청은 작업 브랜치에서 생성되어야 합니다.
Roll20의 리포지토리에 대한 공동 작업자 권한이 없으므로 직접 끌어오기 작업을 수행할 수는 없지만 다른 사람에게요청하여 끌어오기를 수행할 수 있습니다. 큰 녹색 버튼인 "풀 요청 생성"을 누르면 풀 요청이 기본 저장소에 열립니다. 이를 수행할 권한이 있는 사람(즉, Roll20 개발자)은 풀 요청과 제안된 변경 내용의 내용을 검토한 후 요청을 공식 저장소에 병합할 수 있습니다.
명확성을 위해, 풀 요청에 변경 사항이 있는 시트의 이름을 포함해 주세요. 예를 들면, "[던전 탐험가 3판] 고장난 힘 굴림".
캐릭터 시트를 제출할 경우, sheet.json
를 포함하고 미리보기 이미지를 반드시 포함하세요. 모드 (API) 스크립트를 제출할 경우, 반드시 script.json
를 포함하세요. 가정이 모두 올바른 경우 시트 또는 스크립트가approved.yaml
파일에 추가되어 모든 사용자에게 사용 가능하게 됩니다!
매주 Roll20은 모든 가능한 시트 요청을 처리합니다. 이 때문에 GitHub에서 이메일을 받게 됩니다. 이 이메일은 요청과 관련된 문제에 대한 코멘트가 남겨졌거나 예상대로 시트가 병합되고 요청이 닫혔음을 알려줍니다 (성공적으로 완료되었기 때문에).
PULL 요청에 변경 사항을 만드는 경우
PULL 요청이 병합되기 전에 리포지토리/브랜치에 추가 변경 사항을 커밋 & 푸시하는 경우, 해당 새로운 변경 사항이 원래의 풀 요청에 자동으로 업데이트/포함됩니다. 두 번째 풀을 만들 필요가 없습니다.
정리
해당 브랜치의 모든 풀 요청이 완료되고 닫힐 때까지 어떤 브랜치도 삭제하지 마십시오. 실제로 브랜치를 삭제하는 데는 어떤 서두릅도 없습니다. 각 브랜치를 한 번만 사용한다면 아무런 문제가 없습니다.
GitHub 소프트웨어는 브랜치를 master로 병합하라고 권장합니다. 이는 다른 워크플로우에서 필요한 단계이지만, 우리가 사용하는 포킹 워크플로우에서는 필요하지 않습니다. 대신, 다음 업데이트를 준비하기 위한 첫 번째 단계로 fork를 roll20 원본과 동기화하는 것을 권장합니다. 이렇게 하면 방금 한 업데이트(누군가가 한 변경 사항 포함)가 fork로 가져와집니다.
따라서 정리할 필요가 없습니다.
추가 정보
- Github 사용 팁 (Roll20 포럼 스레드)
- Github 워크플로우(시각화) (사용하지 않는 플로우지만 좋은 시각화) 및 포킹 워크플로우 (우리가 사용하는 것)
- Git - 간단한 가이드 (커맨드 라인 도구) by Roger Dudler
- GitHub 워크플로(GitHub 데스크톱)6/22/16
시인을 위한 Git 및 Github 유튜브 튜토리얼
비전문가를 위한 10~20분 길이의 동영상으로, 브라우저에서 Github로 작업하는 방법과 명령줄 사용에 대한 소개를 통해 Git 및 Github의 기본 사항을 알려줍니다. 2016년에 제작되었지만 얼핏 보면 날짜가 오래된 것 같지 않습니다(2019년 3월).
- 1.2 브랜치12분
시인을 위한 Git 및 Github(기본 사항 이상)
- 1.10 Git 원격14분