직접 소스 코드 제어 시스템을 설정하려면 어떻게합니까?


23

사무실의 데스크톱에서 프로그램을 작성하는 경우도 있지만 집에서 랩톱의 다른 방에 있거나 집에서 멀리 떨어진 경우도 있습니다. 필요한 것은 자동 또는 주문형 작업을 필요에 따라 한 작업에서 다른 작업으로 자동 동기화하는 시스템입니다.

나는 홈 네트워크 설정이없고, 비록 그것을 할 수 있다고 생각하지만 다른 보드에 대한 질문 일 것이다. 클라우드에 소스 코드를 유지하는 일종의 시스템에 대해 생각했지만 시작하기에 충분하지 않습니다. 이를 위해서는 일종의 무료 또는 저렴한 방법이 필요합니다.

나는 .NET (실제로 Windows Phone 7)에서 일합니다.


1
dropbox를 사용하고 두 머신에 설치하고 완료하십시오. 무료입니다 (최대 2GB). 상황에 따라 소스 제어가 최상위 (IMHO)에 있습니다.
Darknight

26
소스 컨트롤은 절대 최고가 아닙니다 (IMHO)!
Mongus Pong

4
Git을 설치하고 실행하는 데 <15 분 (다운로드 대역폭에 따라 다름)이 소요됩니다.
Mongus Pong

2
드롭 박스를 설치하고 실행하는 데 다운로드 대역폭에 따라 <3 분이 걸립니다.
Darknight

4
DropBox는 끔찍한 제안입니다! 적절한 버전 관리 시스템이 아니며 데이터를 공유하기위한 것입니다. 파일을 저장하고 실시간 으로 다른 모든 클라이언트와 동기화 할 때마다 변경 사항을 업로드하고 다운로드하는 습관이 매우 불쾌 합니다. 특히 인공물을 만드는 무언가를 사용하는 경우이 불필요한 네트워크 트래픽을 모두 수행하여 컴퓨터를 완전히 정지시킵니다. DropBox에있는 동일한 디렉토리에 있습니다. Git 또는 이와 동등한 DVCS를 배우고 사용하십시오.

답변:


39

가장 쉬운 방법은 온라인 시스템 중 하나를 사용하는 것입니다. 체크 아웃 GitHub의 또는 의 Bitbucket . Git 또는 Mercurial에 대한 자세한 내용은 각각 Git ReferenceHg Init를 확인하십시오 .


모든 컴퓨터에 인터넷이 연결되어 있지만 다른 사용 사례가있을 수 있습니다. 예를 들어, 일부 하위 버전 저장소를 USB 플래시 스틱에 저장하고 일부 더 큰 저장소 (소스 코드가 아닌 사진 및 사물)를 외장 하드 드라이브에 보관합니다. 전환으로 더 행복 해지면 USB 플래시 드라이브에 Mercurial 리포지토리도있을 것입니다. 한 가지 이유-나는 여전히 많은 것을 위해 Windows XP를 사용하지만 요즘 인터넷에서 (노트북 또는 데스크톱) 허용하지는 않습니다.
Steve314

21
Git 및 Mercurial과 같은 분산 버전 제어 시스템의 좋은 점은 리포지토리를 로컬로 작업 한 다음 'Net 연결이 편리 할 때마다 일부 중앙 서버와 동기화 할 수 있다는 것입니다. OP에 이상적인 솔루션 인 것 같습니다.
Michelle Tilley

@Brandon-외부 드라이브의 메인 리포지토리에서도 작동합니다.
Steve314

2
BitBucket은 무료 개인 저장소 (GitHub와 달리)를 가지고 있으므로 OP에 대한 더 나은 옵션이 될 수 있습니다.
케빈

내가 로컬에서 실행하도록 제안하지 않은 이유는 그가 편안하게 들리지 않기 때문에 원격 액세스가 필요하다고 말했기 때문입니다. 그러나 분명히 로컬에서 실행하고 클라우드 저장소로 푸시하는 것이 가장 안전하고 안전한 방법입니다.
피터 로웰

7

Git 또는 Mercurial과 같은 DVCS를 사용하여 로컬 저장소를 만든 다음 Dropbox 를 설치 하고 프로젝트 폴더 (물론 저장소 폴더 포함)를 dropbox 폴더에 넣을 수 있습니다.

Dropbox는 동기화를 처리하며 동기화간에 한 곳에서만 수정하는 한 오프라인 상황을 처리 할 수 ​​있습니다.

BTW Dropbox는 기본적으로 파일을 공개하지 않지만 원하는 경우 계속 공개 할 수 있습니다.

편집하다

Dropbox에서 파일 동기화가 누락 된 경우 리포지토리 무결성과 관련 하여 주 PC의 Dropbox 폴더 외부에 마스터 리포지토리를 만들어 푸시 할 수 있습니다. 따라서 Dropbox 폴더의 로컬 저장소가 손상된 경우 기본 PC에서 복원하십시오. 그러나 저장소 손상이 발생하지 않았습니다.



본질적으로 내가하는 일. Dropbox의 메인 리포지토리 인 데스크톱 및 랩톱의 Mercurial 리포지토리.
David Thornley

@David 나는 반대로, PC의 메인 리포지토리, Dropbox의 리포지토리에서 작업중 인 소스 코드 파일을 포함하여 작업합니다.
Endy Tjahjono

@ Endy Tjahjono : 한 컴퓨터에서 작업하는 것처럼 댓글에서 들립니다. 데스크탑과 랩탑을 가끔 사용하기 때문에 메인 리포지토리를 사용하지 않는 경우가 있습니다.
David Thornley

@David 내 실수, 내 주 PC에서 '백업'리포를 말 했어야합니다. 내 '주요'저장소는 보관 용 폴더 내의 작업 저장소입니다. 백업 목적으로 백업 리포지토리를 푸시합니다.
Endy Tjahjono

6

다음은 분산 VCS를 설정하는 방법에 대한 간단한 지침입니다. git 또는 mercurial을 사용하면 리포지토리가 파일 시스템 일 뿐이므로 모든 서버를 작동시키기 위해 서버를 설정할 필요가 없다는 이점이 있습니다. 코드 옆에 컴퓨터에 로컬 저장소가 있습니다 (git에는 하나의 .git폴더가 있고 수은에는 .hg프로젝트 경로에 하나의 폴더가 있습니다).

자식 사용

1 단계 : git 다운로드 및 설치 Windows의 경우 TortoiseGit 을 사용할 수 있습니다 . 일부 설정 정보는 여기에 있습니다 .

2 단계 : git 커뮤니티 북을 따라 프로젝트의 로컬 리포지토리를 초기화하고 리포지토리커밋 합니다.

3 단계 : github 인 "클라우드"에 항목을 배치하려면 이 학습서를 수행 할 수 있습니다 .

머큐리얼 사용

1 단계 : 수은 다운로드 및 설치 Windows의 경우 TortoiseHg 를 사용할 수 있습니다 .

2 단계 : 빠른 시작 안내서 에 따라 프로젝트의 저장소를 작성하고 저장소에 커밋하십시오.

3 단계 비트 버킷 인 "클라우드"에 물건을 놓으려면 이 튜토리얼을 따르십시오 .

당신은 .NET에서 작업하는 경우 당신은 때문에 의욕을 사용할 수 있습니다 (종류의) 쓰기 순간에 Windows에서 더 나은 지원을.


2

@ peter-rowell과 다른 사람들이 이미 말했듯이 가장 쉬운 방법은 Git과 같은 DVCS와 Github 또는 Unfuddle과 같은 해당 온라인 시스템을 사용하는 것입니다. 나는 개인적으로 Git과 Unfuddle을 사용합니다.

집에서 인터넷 연결을하는 것도 문제가되지 않는다고 언급 했으므로 브라우저에서 실행되고 클라우드에있는 이 새로운 온라인 IDE 가 있습니다. 나는 전에 이와 같은 것을 사용할 수 있다는 것을 몰랐지만 이것은 매우 흥미롭고 시원하게 보입니다. 비록 많이 사용하지는 않았지만 시원합니다.


Unfuddle은 훌륭한 서비스입니다. 기본적으로 그것은 약간의 조정이있는 redmine의 사본 일뿐입니다.
Keyo

2

거의 모든 DVCS가 도움이 될 것입니다.

가장 인기있는 것은 Git, mercurial 및 기타 몇 가지입니다. 하지만 난 화석을 정말 좋아 합니다. 단일 (작은!) 실행 파일, 쉽게 휴대 가능하고 독립적이며 다중 플랫폼이며 위키, 웹 기반 GUI, 티켓 시스템, 문서 처리기 등이 포함됩니다.


1
Bitbucket은 Mercurial 호스팅을 제공하는 서비스입니다.
Tamás Szelei

감사. 나는 그것을 알고 있었다; 이름이 내 마음에 엉 키게
Javier

1

내가 제안하는 옵션은 Kiln 입니다. FogBugz와 Stack Exchange를 만드는 동일한 사람들이 만듭니다. 따라서 꽤 좋을 것입니다. 또한 내가 믿는 최대 3 명의 사용자에게는 무료입니다. 스케일은 FogBugz와 같으며 두 개를 통합하여 버그와 기능을 추적 할 수 있습니다.

Joel이 블로그 게시물 중 하나에서 말했듯이 버그 추적 및 소스 제어는 항상 고독한 개발자에게도 플러스입니다.


글쎄, 그것은 3 명의 사용자에게는 무료일지도 모르지만, 이제는 한 달에 사용자 당 25 달러입니다. 여전히 멋진 제품처럼 보입니다.
Cyberherbalist

1

코드의 프라이버시가 문제가되지 않으면 Google 코드 가 유효한 솔루션 일 수 있습니다. 호스팅 부분을 처리하며 무료이며 설치가 매우 쉽습니다. Windows 클라이언트가있는 Subversion, Mercurial 및 Git을 지원합니다. 또한 Google ID와 통합되므로 프로젝트에 기고자를 쉽게 추가 할 수 있습니다. Mercurial을 사용하여 취미 프로젝트를 진행합니다. 집과 업무용 컴퓨터에 TortoiseHg 클라이언트가 설치되어있어 휴식 시간 동안 프로젝트 작업을 수행 할 수 있습니다.


좋은! 언급 해 주셔서 감사합니다. 아직 Google 코드에 대해 들어 보지 못했습니다.
Cyberherbalist

0

서버 설정에 대한 지식과 투자 할 시간에 따라 다릅니다.

개인적으로 호스팅 업체에서 작은 가상 서버를 빌려서 Subversion 저장소가 통합 된 Apache 웹 서버를 설치했습니다 (이제 git로 변환하고 있습니다). 설정은 그다지 크지 않으며 일단 실행되면 더 이상 걱정할 필요가 없습니다. 이 설정은 버전 관리 리포지토리뿐만 아니라 어디에서나 액세스하려는 다른 종류의 항목을 설정할 수 있다는 장점이 있습니다 (예를 들어 WIKI 및 이슈 트래커를 설치했습니다).

너무 많은 오버 헤드가 있으면 GitHub와 같은 이미 제안 된 온라인 시스템을 항상 사용할 수 있습니다.


0

가장 쉬운 방법은 아마도 git 공급자와 함께하는 것입니다 .github은 개인 계정을 지불 할 가능성이 있습니다.

그러나 svn을 잊지 마십시오. 간단하고 사용하기 쉽습니다. 아마도 직장에서 접근 할 수있는 곳에 svn 서버를 설치할 수 있습니다. (그리고 Visual svn 서버와 같은 프로젝트는 Windows에서 이것을 매우 쉽게 만듭니다.) 클라이언트는 Visual Studio 플러그인 또는 tortoisesvn을 사용할 수 있습니다.

기억해야 할 것은 컴퓨터를 전환 할 때 커밋하고 업데이트해야한다는 것입니다.


SVN이 정답이라고 생각하지 않습니다. SVN보다 Mercurial을 설정하는 것이 더 쉬우 며 SVN보다 더 나은 시스템입니다. SVN은 중앙 리포지토리에 직접 연결하지 않으면 쓸모가 없으며 OP에는 직접 링크가없는 두 대의 컴퓨터가 있습니다.
David Thornley

확실하지 않습니다. svn이 분산 대안보다 쉽습니다. 그러나 그는 항상 서버에 접근 할 수 없기 때문에 분기를 원할 때 훈련을 받아야합니다. 그러나 한 사람은 거의 그렇게하지 않습니다. 그리고 커밋해야 할 것은 컴퓨터를 바꿀 때이므로 최적이 아니라는 데 동의합니다. 그러나 대안입니다. git을 사용하기 전에 실제로 이와 같이 일했습니다. (그러나 git을 사용하면 잘못되기 쉽습니다.)
요한

내 가정은 그가 출근 할 때 랩톱을 그와 함께 옮기고 있다고 가정합니다. 그렇지 않으면 이것은 쉬운 설정이 아니며 David가 맞습니다.
요한

git 또는 Hg repo ( git init) 를 설정하는 데 몇 초가 걸립니다. Subversion을 사용하려면 먼저 서버가 필요합니다 git/hg init. 디렉토리에서 실행하는 것보다 훨씬 어렵습니다 . 나는 성급하고 게으르고 Git은 SCM (병합, 초기화, 커밋)이 너무 빠르고 고통스럽지 않기 때문에 SCM을 사용하도록 권장합니다.
Keyo

0

Beanstalk를 사용 합니다. 개인 SVN 서버로 훌륭하게 작동했습니다. 그들은 또한 Git 호스팅을 가지고 있지만 시도하지 않았습니다. 그들은 무료 계정으로 시작할 수 있으며 필요한 경우 유료 계정으로 졸업 할 수 있습니다.


-2

드롭 박스

다른 모든 솔루션은 귀하의 요구를 충족시킵니다.

두 컴퓨터에 Dropbox 를 설치하기 만하면 됩니다.

완전한 소스 제어는 훌륭 하지만 상황에 따라 IMHO가 필요하지 않습니다 .

이것은 가장 쉬운 경로입니다.-> 원하는만큼 많은 컴퓨터에서 자동 동기화 된 폴더로 끝납니다.


1
Dropbox와 함께 Git을 사용할 수 있습니다. 참조 stackoverflow.com/questions/1960799/...
Mongus 퐁

4
특히 Git과 HG를 쉽게 설정할 수있을 때 소스 컨트롤 사용에 대해 과장된 것은 없습니다. 그가 유일한 개발자라고 생각하지 않습니다. 그가 생산 코드를 작성하고 있다면 소스 제어가 필요합니다.
richeym

네 아마도 아마 맞습니다. 나는 단지 단일 개발자에게는 단지 불필요하고 OTT라고 생각하지만 그것은 내 견해입니다.
Darknight

git init, git add ., git commit -m "bla"당신은 몇 가지 코드를 저지하기 위해 알아야 할 모든에 관한 것입니다. 어렵지 않고 되돌릴 수있는 마음을 얻습니다. 물론 이점은 팀에서 훨씬 중요하지만 특정 시점으로 재설정 할 수있는 것이 중요합니다. 분기하고 숨길 수 있으면 생산성도 높아집니다.
Keyo

드롭 박스에서 실시간 동기화에는 기본 롤백 기능이 있습니다. 그렇습니다. 완전한 소스 컨트롤과 비교할 수는 없지만 거의 "화재와 잊어 버리기"
Darknight
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.