소규모 프로젝트에서 혼자 작업 할 때 어떤 종류의 버전 관리를 사용하십니까?


30

나는 종종 나 자신만을 위해 작은 프로젝트를 진행하고 있습니다. 나는 한 대의 컴퓨터에서 일하고 있지만 최근에는 일종의 버전 제어를 사용하려고 생각했습니다. 예를 들어 다음과 같은 이점이 있습니다.

  • 더 이상 로컬 백업을 신경 쓸 필요가 없습니다.
  • 실수는 쉽게 취소 할 수 있습니다
  • 역사는 유지 될 수 있습니다

그러나 반면에 예를 들어 다음과 같은 단점이 있습니다.

  • 필요한 추가 자원
  • 설치 시간, 익숙해지기 등

경험상 혼자서 작업 할 때 개정 관리를 사용하는 것이 좋습니까?


내 두 센트 : 나는 Mercurial과 NetBeans를 사용하고 내가 사용하는 VCS의 가장 귀중한 부분 (Mercurial)은 변경을 수행하고 변경 사항을 살펴보고 지울 수 있습니다 (커밋) (한 번에 또는 전체 프로젝트) 내 여가에서. (NetBeans에는 Mercurial과 작동하는 그래픽 차이가 있습니다.) 방금 수행 한 작업을 처리하는 데 도움이됩니다. 우리 회사에는 다른 기록 및 백업 시스템이 있으므로 일반적으로 해당 목적으로 사용하지 않습니다.
Bryan Field

답변:


46

예.

단 한 번의 실수만으로도 실수를 저 지르게됩니다. 또한 사용 되는 버전 제어 시스템 (VCS) 을 선택할 수 있는 위치에 있습니다 . 앞으로 개발 팀에서 일할 가능성이 있다면 지금은 VCS에 대한 실습 경험을 제공 할 수있는 좋은시기입니다. SVN과 Git (또는 Mercurial)은 훌륭한 출발점이 될 것이며 각 VCS의 기본 명령을 이해하는 데 몇 시간이 걸립니다.

이제 부정적인 점 을 파헤쳐 보았습니다 ...

1) 추가 자원 필요

에만 필요한 자원은 디스크 공간입니다. 이것은 전체 코드 의 작은 비율 ( Git 에서 X보다 작음 )이므로 이것이 문제가 될 것이라고 생각하지 않습니다. 돈도 들지 않습니다.

2) 설정 시간, 익숙해지기 등

그것을 배우는 데 필요한 시간이 있지만, 각각에 대해 몇 시간 밖에 걸리지 않습니다 (위에서 언급 한 것처럼). 장기적으로는 무한한 시간을 절약 할 수 있습니다. VCS의 기본 사항을 익힌 후에는 로컬 백업을 수행하는 것보다 훨씬 덜 까다 롭습니다.


5
+1 : 아주 좋은 점수입니다. 그러나 svn은 권장하지 않습니다. 인터넷에 연결되어 있지 않을 때 변경 사항을 커밋 할 수 없으므로 때로는 큰 제약이 될 수 있습니다. Git (고급 사용자 용) 또는 Mercurial (더 간단한 시스템 용)을 권장합니다.
Eric O Lebigot

7
Mercurial에 대한 또 다른 투표.
Chris Holmes

4
이 경우 @EOL, SubVersion을 실행할 수 있습니다. 저장소가 로컬 인 경우 커밋을 수행하기 위해 인터넷 연결이 필요하지 않습니다. (I 저장소 요구 사항을 제안하지만 개발 드라이브에서 별도의 드라이브에 적어도 수 있습니다.)
켄 헨더슨

1
@EOL : 아 네, 전에는 사용하지 않았기 때문에 Mercurial을 포함하는 것을 잊었습니다. 지금 편집하겠습니다. (Git을 사용한 후에) SVN을 만지지 않으면 SVN이 여전히 널리 사용됩니다.
Jonathan Khoo

1
보관함에서 지역의 repo에 @ken SVN은 단일 사용자에 이상적입니다
마틴 베켓

13

예. 모든 용도로 사용하십시오. Word로 작성하는 모든 문서에 사용하십시오. 작성하는 모든 코드에 사용하십시오. 만드는 모든 이미지에 사용하십시오.

또한 사용 방법을 익힌 후에는 팀 환경에서 작업 할 때 더 나아질 것입니다.


4
Word의 유일한 문제는 이진 형식으로되어 있기 때문에 diff; LaTeX를 사용해야하는 또 다른 이유.
gablin

이미지와 함께 사용하는 것은 무엇입니까?
Rook

예 : WinMerge는 Word 및 Excel 문서를 구별 할 수 있습니다
Simon

2
@ 루크 : 이미지와 함께 사용하는 요점은 이미지를 편집하면 필요할 때 항상 이전 버전으로 돌아갈 수 있다는 것입니다.
Alex D

9

나는 혼자 일할 때 Git을 사용하는 것을 좋아합니다. 예를 들어, PHP로 작업 할 때 Apache가 제공하는 로컬 디렉토리에 Git 저장소를 만듭니다. 지점에서 새로운 기능을 쉽게 시작하여 로컬 컴퓨터에서 테스트 할 수 있습니다. 그런 다음 문제가 발생하여 "긴급 수정"을 작성해야하는 경우 다음과 같이 간단합니다.

git checkout master

짜잔! 내 작업 디렉토리는 다시 브랜치 이전 상태로 돌아갑니다. 빠른 수정을 할 수 있습니다. 완료되면 지점으로 다시 전환하여 계속 개발할 수 있습니다.

학습 곡선은 그리 가파르 지 않으며 시작하는 데 도움이되는 많은 정보가 온라인에 있습니다. 그것을 파헤 치십시오. 그것은 가치.


GitHub 또는 Gist와 함께 Git은 솔로 프로젝트를 위해 노력할 가치가 있습니다. 그들은 당신을 자신으로부터 보호하고 다른 사람들이 참여할 준비가되었을 때 도움을 받기가 정말 쉽습니다.
Rob Allen

5

변경 로그는 소스를 어지럽히 지 않고 변경 사항을 문서화 할 수있는 좋은 장소입니다.


2

SourceRepo와 같은 호스트를 찾으십시오. 너무 비싸지는 않지만 소스 컨트롤을 사용하면 실수를 취소하고 코드를 훨씬 쉽게 되돌릴 수 있습니다.

필요한 경우 어디서나 액세스 할 수 있습니다.


4
회사 속성을 외부 서버에 업로드 할 때주의해야 할 수 있습니다. 일부 회사에서는 괜찮을 수도 있지만 다른 회사에서는 눈살을 찌푸 릴 수도 있습니다.
davidhaskins

1
주의해야 할 점. 제출자가 직접 프로젝트를 진행했다고해서 개인적으로 사용한다고 가정했지만, 라인 관리자가 사용자가 함께하기로 결정한 시스템 (특히 클라우드 공포증 인 경우)을 확실히 알고 있어야합니다.
James Love

2

다른 용도로도 사용할 수 있다는 것을 깨달을 때까지 항상 개발에 git을 사용했습니다. 그래서 git을 시도해보십시오. 서버가 필요없고 지속적인 연결없이 실제 저장소를 제공합니다 (나에게 큰 이점입니다). 숨겨진 파일과 폴더로 프로젝트의 하위 디렉토리를 퍼 뜨리지 않고 프로젝트 상단에 폴더가 하나만 있습니다. 모든 것을 버리고 원하는 것을 복제하고 다시 병합하여 작동합니다.


2

무료로 찾고 소스를 지원한다면 Visual Studio Online을 잘 살펴볼 것입니다. 최대 5 명까지 무료로 이용할 수 있으며 혼자서도 가능합니다. 이것은 4 년이 지난 게시물이므로 상황이 변경되었을 가능성이 있지만 쉬운 소스 제어를 원하는 다른 개인 개발자에게는 소스 코드를 공개하지 않으려는 경우 VSO가 가장 좋아하는 선택 중 하나입니다. IIRC Github는 오픈 소스에 대해서만 무료이지만 가격은 매우 저렴합니다. VSO와 Github은 모두 Visual Studio와 잘 통합되어 있습니다.


그리고 VSO는 이제 Git을 지원합니다! 작고 낡은 TFVC!
RubberDuck

1

저는 항상 통합 프로젝트 환경과 함께 자체 프로젝트에 대한 소스 제어를 설정하고 체크인 할 때마다 단위 테스트 / 실행 통합 검사를 빌드 / 실행합니다. 또한 웹 앱 또는 Windows 서비스 인 경우 대상을 배포합니다 게다가. 이 방법을 사용하여 디버깅하고 배포하는 데 수 많은 시간을 절약했으며 처음에 설정 한 것과 비교할만한 것은 없습니다.


1

repos에 대해 정말 멋진 또 다른 기능은 다른 지점에서 실제로 위험한 실험 / 기능을 수행 할 수 있다는 것입니다. 제대로 작동하면 기본 코드의 일부로 병합 할 수 있습니다. 그렇지 않거나 시간이 부족한 경우 포기하고 (저장된) 메인 코드베이스를 엉망으로 만들지 않고 나중에 다시 돌아갈 수있는 옵션으로 메인 코드로 다시 전환 할 수 있습니다.

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