2010-12-15 5 views
6

소개어떻게하면 Git과 Git Extension을 사용할 수 있습니까?

내가 솔로 프로그래머로 일하고 때 난 그냥 내가 무엇을하고 있었는지의 오프 사이트 기록을 유지하기 위해 다시 이전 SVN을 사용했습니다, 그래서 나는 종류의 "저장소"와 같은 아이디어에 대해 알고 "커밋"등등, 그 이상은 아니지만. "Branches", "Merges"및 "Check out"은 슬프게도 나에게 수수께끼입니다.

나는 Git을 사용하기를 원합니다. 사무실에서 일하는 사람들이있어서 IDE 통합으로 인해 다른 버전 제어 시스템을 사용할 수 없다는 불평을하기 때문입니다. 그들이 닿지 않을 때 눅눅하고 넘어지다. Git의 "모든 작업 디렉토리가 저장소"라는 생각은이 문제를 해결하기위한 방법으로 보일 것 같습니다.

어쨌든 "Git Extensions"를 다운로드하여 The Shiny를 Windows 상황에 맞는 메뉴 등에 추가했습니다.이 기능을 사용하여 어떻게하면 내 컨트롤을 제어 할 수 있는지에 대한 개념이 없다는 것을 알았습니다. 버전 관리.

시나리오

나는 세 가지 프로젝트를 가지고 : Google 검색 후 분명 아무것도 발견하지, 나는 누군가가 작은 즉, 무엇을 말해 것이라는 희망 스택 오버플하기 위해 다음과 같은 이론적 인 시나리오를 제시한다. 하나의 프로젝트 인 ProjectReuse는 다른 두 프로젝트 (ProjectA 및 ProjectB)에서 사용됩니다. 조직의 여러 사람들이 Visual Studio 2010을 사용하여 각 프로젝트의 코드를 편집해야합니다.

"ProjectReuse", "ProjectA"및 "ProjectB"라는 레이블이 지정된 바탕 화면에 세 개의 폴더가 있습니다. 힘내기 창을 열어 놨어. 산타 클로스 모자를 쓰고 암소가 날 쳐다보고있다.

질문 나는 그들이 필요할 때 (성가신 그하지-항상 현장들 포함) 여러 사람이 저장소에 액세스 할 수 있도록하는 방식으로 저장소를 만들기 위해 지금 무엇을

, 온 사이트 또는 오프, 우리 서버에 영구적으로 연결되어 있든 없든간에?

첫 번째 사람이 파일을 편집해야 할 때 은 무엇입니까? 할 필요가 있습니까? 체크 아웃? 분기? 나는 이것을 다른 팀원들에게 설명해야만한다. 그리고 나는이 개념들에 대해 조금 불안하다. 전에 솔로 프로젝트에만 버전 컨트롤을 사용했습니다.

Wheedling과 변명

먼저 "어떻게 내가이 설정합니까?"가 질문은 내가 가장 관심을 갖고있는 것이지만, 나는 바보의 가이드를 물어 보려한다면,이 질문에 걸린 다음 바보에게 가능한 한 유용 할 수 있도록 요청할 것입니다. 나는 특히 심층적 인 대답을 찾고 있지 않다. 다중 사용자 버전 제어 시스템이 어떻게 작동하는지 명확하게 알 수 없습니다. 일단 내가 마음 속에 그것을 가지고 있다면 나는 나머지를 함께 할 수 있어야한다.

+0

+1 "나는 Git Extenstions 창이 열렸습니다. 산타 클로스 모자를 쓰고있는 암소가 저를 쳐다보고 있습니다." 많은 새로운 사용자들이 많은 소프트웨어에 대해 그렇게 생각하는 방식입니다. –

답변

10

자, git에 대해 가장 먼저 알아 보도록하겠습니다. 힘내는 분배된다. 필요한만큼 여러 번 자신에게 이것을 반복하십시오. 중앙 서버, 중앙 저장소 또는 실제로 모든 것이 없습니다. SVN과는 완전히 대조적으로, 하나의 저장소에 액세스하는 것은 아닙니다.

당신이하는 일은 어딘가에서 저장소를 만드는 것입니다. 그런 다음 다른 사람들이 그것을 복제합니다. 이제는 모든 사람들이 저장소의 사본을 가지고 있으며 원하는대로 할 수 있습니다.많은 사람들이 도움을 줄지라도 지사 이름은 리포지토리 전체에서 일관 될 필요조차 없습니다.

그래서 어떻게 설정합니까? 저장소를 초기화 한 다음 원하는 모든 사람이 복제합니다. 귀하의 경우, 각 프로젝트에 3 가지를 모두 묶는 대신 자체 저장소가있는 것이 좋습니다.

하지만 개발 팀을 어떻게 관리해야합니까? 절대 두려워하지 마. 나는 중앙 저장소가 없다고했지만 저장소의 하나를 릴리스 저장소로 지정하고 다른 저장소를 실험적으로 지정하는 것을 중지하지는 않습니다.

그런 다음 워크 플로가 필요합니다. 일반적으로, 당신이하는 일은 상기 릴리스 저장소를 생성 한 다음 "모두가 여기에서 마스터로부터 끌어 당깁니다"라고 말합니다. 이것은 최신 "안정"릴리스를 나타냅니다. 이제 모든 사람들에게 여기에서 분점하여 새로운 기능을 개발하도록하십시오. 그들은 이것을한다. 이러한 작업이 끝나면 변경 사항을 자신의 마스터 또는 다른 곳으로 병합하도록 사용자에게 요청합니다. 릴리스 관리자가 릴리스 지점 관리자로 이동하면 (아마도 개발 지점으로 이동하지만 사소한 이유로 릴리스 마스터로 할 수 있습니다. 커밋을 역으로 수행). 다음 사람이 마스터를 업데이트하고 병합합니다. 그들은 자신이 원하는 모든 기능을 갖추기 전까지 자신의 병합 충돌 등을 해결합니다. 당신은 당신의 테스트 등을한다. 그런 다음 릴리스 저장소는 모든 것을 마스터로 끌어 들인다.

실제로 많은 다른 일을 할 수 있습니다. 예를 들어 많은 사람이있는 경우 많은 통신이 필요합니다. 많은 사람들이 공유 프로젝트에 호환되지 않는 변경 사항을 적용하면 몇 가지 병합 커밋이 발생할 수 있습니다. 이를 피하기 위해 사용자는 서로를 병합하거나 로컬 "공유"저장소를 사용할 수 있습니다.

작동하지 않습니다.

+1

기본 워크 플로를 시작하려면 http://nvie.com/archives/323을 참조하십시오. 분산 SCM과 중앙 집중식 SCM 간의 워크 플로가 서로 다른 점을 고려하십시오. 필요한 경우 시간을내어주십시오. 그리고 마지막으로 내 경험에 의하면 TortoiseGit은 Git Extensions보다 성숙하고 사용하기 쉽습니다. – Ither

+0

@ 다른 오 와우, TortoiseGit가 있습니까? 나는 그것을 분명히 줄 것이다. – Frosty840

3

Ninefingers가 말한 것처럼 새로운 저장소를 초기화하고 다른 사람이 복제하도록합니다. 공개 (또는 중앙) 저장소를 원할 때 개인 저장소가 아닌 공유 저장소를 작성한다는 점을 기억하십시오. 가장 쉬운 방법은 먼저 개인 저장소를 만들고 모든 사람이 공유 저장소로 액세스 할 수있는 장소 (예 : 네트워크 공유)에 복제하는 것입니다.

는 여기 망할 놈의 확장에 대한 몇 가지 비디오 자습서를 만들었습니다 : http://code.google.com/p/gitextensions/ 비디오 자습서 내가 마이크 또는 비디오 편집 기술을 가지고 있지 않지만, 당신을 얻을 충분해야하기 때문에 아주 좋은 조금 오래된 아니다 시작되었습니다.

행운을 빈다.

관련 문제