개인 Git 리포지토리를 어떻게 구성 할 수 있습니까?


20

다른 iOS 개발자들이 자유롭게 사용할 수있는 최근 iOS 프로젝트의 일부로 개발 한 라이브러리 쌍을 만들 계획으로 GitHub 계정을 설정하는 중입니다.

현재 대부분의 코드에 대한 오프 사이트 백업이 없으므로이 부분으로 원래 모든 개인 프로젝트 또는 적어도 모든 iOS 프로젝트를 개인 GitHub 호스팅 리포지토리에 업로드한다고 생각했습니다. . 그러나 나는 많은 프로젝트를 진행하고 있으며, 그 중 많은 것들이 상당히 낮은 가치를 가지고 있습니다 (즉, 책에서 적응하고 학습 경험을 위해 쓰여졌습니다). GitHub는 프라이빗 리포지토리에 의해 요금을 청구 할뿐만 아니라 리포지토리를 계층 적으로 구성하는 방법이없는 것 같습니다.

내가 누락 된 것이 계층 구조로 git 저장소를 사용하고 필요에 따라 / SVN과 함께 작업하는 방식으로 조각을 체크 아웃 할 수있게 해주는 것입니까?

GitHub (또는 BitBucket과 같은 경쟁 업체)에 누락 된 프로젝트 구성 기능이 있습니까?

실패하면,이 상황을 처리 할 때 일반적으로 받아 들여지는 "Git 방식"은 무엇입니까?

내가 알 수있는 한 내 옵션은 다음과 같습니다.

  1. GitHub에 라이브러리를 배치하고 다른 모든 프로젝트에 대해 내 SVN을 계속 호스팅하고 오프 사이트 백업 (블리치)에 비 VCS 솔루션을 사용하십시오.
  2. GitHub에 공개하려는 라이브러리와 소프트웨어를 각각 공개 및 비공개로 설정하고 관심이없는 프로젝트를 위해 내 SVN을 계속 호스팅하고 XYZ를 구현하는 방법에 대한 내 기억을 새로 고치려고 할 것입니다. 내 집이 묵살되면 (더블 블리치) 내가 기꺼이 쓰겠다고 결심하고
  3. 모든 것을 [GitHub 및 / 또는 BitBucket]에 넣고, 필요한 것을 검색하거나 오프라인 포인터 세트를 [GitHub 및 / 또는 BitBucket] 계정 (트리플 블리치)으로 유지하여 엄청나게 많은 리포지토리를 처리합니다.

2
우리가 여기서 말하는 리포지토리 수를 알고 싶습니다. "포인터"란 무엇을 의미합니까?
mhulse

이것은 오래된 질문이기 때문에 bitbucket을 사용하면 무료 조직을 만들 수 있으며 프로젝트를 보유 할 수있는 저장소를 가질 수 있습니다. 조직은 특정 수의 사용자에게 무료입니다. org / project / repo로 권한을 관리 할 수 ​​있습니다.
xenoterracide

GitHub는 이제 유료 요금제와 함께 무제한 개인 저장소를 제공합니다.
Jack

답변:


11

bitbucket.org를 사용하면 무제한 개인 저장소를 만들 수 있습니다.

힘내 당신이 일부 코드를 확인하실 수 없습니다. 따라서 각 프로젝트에 대한 저장소를 작성하거나 모든 프로젝트 복제를 처리해야합니다. 실제로 모든 작은 프로젝트를 단일 리포지토리에 배치하는 데 문제가 없습니다. 한 번 복제하면 완료됩니다.

Git을 사용하면 로컬 리포지토리를 날려 버리거나 다른 컴퓨터로 옮기지 않는 한 코드를 "체크 아웃"할 필요가 없습니다. 모든 변경 사항을 동기화하면됩니다.

많은 리포지토리와 비슷한 문제가 있습니다. 단일 저장소에 모두 저장할 수없는 이유는 각 저장소마다 다른 버전을 분기해야하기 때문입니다. 관리하기가 매우 어렵습니다.


True, true ... 개인 프로젝트에 BitBucket을 사용하기 때문에 GitHub를 구체적으로 호출해서는 안됩니다. 덜 구체적으로 만들기 위해 질문을 약간 수정했습니다.
Arkaaito

5

짧은 답변 ...

내 제안 : GitHub 및 / 또는 Bitbucket (기타?)의 공개 계정으로 시작하십시오. 몇 가지 공개 프로젝트를 포기하고 도구 / 인터페이스를 사용하십시오. 일단 서비스에 대한 느낌이 들었다면 각 서비스의 한계, 장점 및 단점이 무엇인지 파악해야합니다. 여기에서 버전 제어 계발에 가장 적합한 경로를 선택할 수 있어야합니다. :)


긴 대답 ...

현재 대부분의 코드에 대한 오프 사이트 백업이 없으므로이 부분으로 원래 모든 개인 프로젝트 또는 적어도 모든 iOS 프로젝트를 개인 GitHub 호스팅 리포지토리에 업로드한다고 생각했습니다. . 그러나 나는 많은 프로젝트를 진행하고 있는데, 그 중 많은 것들이 상당히 가치가 낮습니다 (즉, 책에서 적응하고 학습 경험을 위해 쓰여졌습니다).

자신의 Git 클라이언트 설치를 고려 했습니까? 이미 웹 호스팅 비용을 지불하고 있다면 해당 호스트를 자체 Git 설정에 사용하는 것이 좋습니다.

예를 들어 내 호스트는 WebFaction입니다 (가맹 없음).

Git 웹 애플리케이션 설치

이 경로를 사용하면 $$$를 절약 할 수 있습니다. 이미 호스팅 비용을 지불하고 있다면

GitHub는 개인 리포지토리에서 요금을 청구 할뿐만 아니라

다른 사람들을 명확히하기 위해 (GitHub 또는 BitBucket과의 비즈니스 제휴 관계가 없음) :

GitHub : 계획 및 가격

  • 월 $ 7. 최대 5 개의 개인 리포지토리 에 대해 다른 모든 것을 무제한으로 사용할 수 있습니다.
  • $ 12 / 월 최대 10 개의 개인 리포지토리 에 대해 다른 모든 것을 무제한으로 사용할 수 있습니다.
  • $ 12 / 월 최대 20 개의 개인 리포지토리 에 대해 다른 모든 것을 무제한으로 사용할 수 있습니다.

"사업 계획"가격이 다릅니다.

Atlassian의 Bitbucket에 대한 Git 및 Mercurial 리포지토리 요금

Andrew가 다른 답변에서 언급했듯이 Bitbucket은 무제한 개인 저장소를 선전합니다.

  • 5 명의 사용자 : 무료
  • 10 명의 사용자 : $ 10 / 월
  • 25 명의 사용자 : $ 25 / 월
  • 사용자 50 명 : $ 50 / 월
  • 100 명의 사용자 : $ 100 / 월
  • 무제한 $ 200 / mo.

리포지토리를 계층 적으로 구성하는 방법이없는 것 같습니다.

"계층 적으로"가 무엇을 의미하는지 확실하지 않습니다 (아마도 SVN에 익숙하지 않기 때문입니다).

이것이 도움이되는지 확실하지 않지만이 비교표를 보면 명령이 어떻게 비교 / 차이되는지 확인할 수 있습니다.

내가 누락 된 것이 계층 구조로 git 저장소를 사용하고 필요에 따라 / SVN과 함께 작업하는 방식으로 조각을 체크 아웃 할 수있게 해주는 것입니까?

분기?

GitHub (또는 BitBucket과 같은 경쟁 업체)에 누락 된 프로젝트 구성 기능이 있습니까?

이것이 도움이 될지 확실하지 않지만 다음을 살펴볼 수 있습니다.

Git에는 커밋 ( git-gui ) 및 브라우징 ( gitk )을 위한 내장 GUI 도구가 제공 되지만, 플랫폼 별 경험을 원하는 사용자를위한 여러 타사 도구가 있습니다.

... 다시 말하지만, 그러한 도구 중 어떤 것이 가능한지 느낌을 얻는 데 도움이되는지 확실하지 않습니다.

분명히, 나는 당신에게 Git 기술 수준을 확신하지 못합니다 ... Git / GitHub를 처음 사용하는 경우 GUI를 사용하는 것이 물건에 대한 느낌을 얻는 빠르고 쉬운 방법 일 수 있습니다. 개인적으로 Mac / Windows 용 공식 GitHub 앱을 사용하고 싶습니다.

실패하면,이 상황을 처리하는 일반적으로 허용되는 "git way"는 무엇입니까 (릴리스하지 않은 프로젝트를 버리고 오프라인으로 저장하고 어떻게 든 함께 묶는 등)?

내가 당신이라면 저장소를 사용하고 있습니다.

개인 저장소는 몇 개입니까?

GitHub를 사용하려는 경우 가장 저렴한 계획을 세우고 몇 가지 개인 저장소를 사용하여 모든 테스트 / 비공개 코드를 보유하는 것이 해결책 일 수 있습니다. main분기에서 폴더 구조를 사용하여 계층 구조를 유지하거나 여러 분기를 사용하여 사물을 더 분리 할 수 ​​있습니다.

팁 : 최신 버전의 Git을 사용하는 경우 다음을 사용하여 특정 분기를 가져올 수 있습니다 git clone -b mybranch --single-branch git://sub.domain.com/repo.git.

그래도 폴더와 같은 코드를 구성하기 위해 분기를 사용하는 것이 실제로 작업을 수행하는 가장 좋은 방법은 아닙니다 (그러나이 경로를 이끌 수 없다는 것은 없습니다).

( GitHub 지점과 관련된 정보는 여기에서 내 대답을 참조하십시오. )

다시 말하지만, 여러 저장소가 갈 길이라고 생각합니다.

코드가 실제로 개인 정보가 필요한지 스스로에게 물어볼 수 있습니다. 영향을주지 않고 해당 코드로 공개 할 수 있습니까?

GitHub에 라이브러리를 배치하고 다른 모든 프로젝트에 대해 내 SVN을 계속 호스팅하고 오프 사이트 백업 (블리치)에 비 VCS 솔루션을 사용하십시오.

이 경로를 사용하는 경우 Dropbox (또는 이와 유사한)를 사용하여 오프 사이트 백업을위한 일부 버전 제어 및 동기화를 얻을 수 있습니다.

GitHub에 공개하려는 라이브러리와 소프트웨어를 각각 공개 및 비공개로 설정하고 관심이없는 프로젝트를 위해 내 SVN을 계속 호스팅하고 XYZ를 구현하는 방법에 대한 내 기억을 새로 고치려고 할 것입니다. 내 집이 묵살되면 (더블 블리치) 내가 기꺼이 쓰겠다고 결심하고

이것은 "이미 호스팅 비용을 지불합니까? 그렇다면, 자신의 Git 호스트를 설치할 수 있습니다." 장점은 모든 소스 코드가 동일한 호스트에 있지 않더라도 Git 우산 아래에 모든 소스 코드를 가질 수 있다는 것입니다 (즉, 공개하려는 공공 자료에 GitHub를 사용하십시오).

모든 것을 [GitHub 및 / 또는 BitBucket]에 넣고, 필요한 것을 검색하거나 오프라인 포인터 세트를 [GitHub 및 / 또는 BitBucket] 계정 (트리플 블리치)으로 유지하여 엄청나게 많은 리포지토리를 처리합니다.

---> 위의 짧은 답변을 참조하십시오. ^^^^^^


0

내가하는 일은 다음과 같습니다.

  • 별도의 GitHub 리포지토리에 공개하려는 독립 프로젝트를 배치하십시오 . GitHub는 현재 코드를 공유 할 수있는 실질적인 장소이기 때문에 프로젝트를보다 쉽게 ​​검색하고 쉽게 찾을 수 있습니다.
  • 비공개로 유지하려는 프로젝트의 경우 선택한 제공 업체가 호스팅하는 비공개 리포지토리에 배치하십시오. 이미 언급했듯이 Bitbucket 은 무제한 개인 저장소를 허용 하므로이 옵션을 선택하는 것이 좋습니다.
  • 다른 코드는 모두 "정크"저장소에 넣으십시오. 여기에는 학습 및 테스트에 사용되는 코드와 실제로 프로젝트의 일부가 아닌 작은 스 니펫이 포함될 수 있습니다. 비공개로 유지할 이유가 없다면 GitHub에서이 리포지토리를 호스팅 할 수도 있습니다.

    SVN에서 이미 가지고있는 버전 제어의 모든 일반적인 장점 외에도 이제 코드가 온라인으로 백업됩니다. 정크 코드가 프로젝트로 바뀌면 해당 리포지토리로 분리 할 수 ​​있습니다.

    이 코드를 별도의 저장소에 넣거나 git 하위 모듈이나 하위 트리와 같은 멋진 것을 사용할 수 있지만 모든 저장소를 하나의 저장소에 보관하고 폴더를 사용하여 구성하는 것이 가장 쉬운 방법입니다. 훨씬 간단하고 git은 repo의 크기가 문제가되지 않도록 충분히 빠릅니다.


0

가능한 기술 중 하나는 분기를 사용하는 것입니다.

git repo의 브랜치는 커밋에 대한 포인터 일뿐이며 어떤 식 으로든 서로 관련 될 필요는 없습니다. 따라서 호스팅 서비스에서 "사소한 프로젝트"리포지토리를 만든 다음 각 프로젝트에 대해 해당 리포지토리의 분기를 사용할 수 있습니다. 소규모 프로젝트가 커지면 지점을 자체 리포지토리로 쉽게 옮길 수 있습니다.

로컬로 분기를 별도의 로컬 저장소에 유지하거나 (로컬 저장소와 원격 저장소 사이에 1 : 1 매핑 일 필요는 없음) 단일 로컬 저장소를 갖고 git worktree를 사용하여 여러 작업 트리를 유지 관리 할 수 ​​있습니다. 개인적으로 첫 번째 접근 방식은 오류가 덜 발생한다고 생각합니다.


동일한 원격 저장소에 저장한다고해서 동일한 로컬 저장소를 사용해야한다는 의미는 아닙니다.
피터 그린

마지막 코멘트는 잊어 버려 방금 git worktree저장소에 대한 추가 작업 트리를 생성하여 여러 가지를 동시에 체크 아웃 할 수 있는 명령 에 대해 배웠습니다 . 이를 통해 접근 방식의 단점은 기본적으로 사라집니다. 각 독립 브랜치에 대한 작업 트리를 만들고 독립적 인 repos처럼 사용하십시오. 이것을 대답에 추가하는 것이 좋습니다 :-)
cmaster-reinstate monica

@cmaster, done ...
피터 그린
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.