베어 본 브라우저
git instaweb --httpd=webrick
로부터 자식 SCM 책
분산 개발을 위해 여기 에 설명 된 접근 방식과 결합 하십시오 ( 잘 설명 된 개념을 위해 데이터 대 신용 )
로컬 리포지토리에서 일회용 git 서버를 시작하십시오.
나는 이것을 이미 트윗 했지만 확장을 사용할 수 있다고 생각했습니다.
분산 된 git 워크 플로우 활성화 : git config alias.serve "daemon --verbose --export-all --base-path = .git --reuseaddr --strict-paths .git /"
변경 사항을 가져오고 푸시하는 핵심 "공식"리포지토리 작업을 포함하는 git 워크 플로를 사용한다고 가정 해보십시오. 많은 회사가 Github와 같은 git 호스팅 서비스 사용자와 마찬가지로이 작업을 수행한다고 확신합니다.
해당 서버 또는 Github이 약간 다운되었다고 가정하십시오.
결국 git을 사용하는 이유 중 하나는 걱정할 필요가 없으므로 로컬 클론에 전체 프로젝트 기록의 사본이 있습니다.
운영 팀이 서버를 다시 작동시킬 때까지 기다리는 동안 코딩과 커밋을 계속 유지할 수 있습니다. 자기주의 사항 : 운영 팀을 위해 도넛을 구입하십시오.
그러나이 가동 중지 시간 동안 같은 저장소에서 git 전문가가 아닌 다른 사람과 공동 작업하려면 어떻게해야합니까?
또는 다운 타임 대신 공동 작업자가 현장에 있다면 어떤 이유로 VPN을 사용하여 공식 저장소에 연결할 수 없습니까?
또는 귀하와 공동 작업자가 많은 실험적 변화를 조사하고 있으며 액세스 권한이 있더라도 완료되지 않은 혼란을 공식 중앙 저장소로 푸시하고 싶지 않은 경우는 어떻습니까? (피처 브랜치조차도 아닙니다.) 아마도 당신은 비참한 리베이스 또는 병합을 청소하는 도중에 있고 브랜치는 모든 곳에 있습니다.
잘 아시다시피, git은 "분산 된"버전 제어 시스템 입니다.
워크 플로에서 중앙의 "공식"git 리포지토리를 사용하더라도 피어-투-피어 방식으로 git을 사용할 수 있습니다. 여기서 동료와 동료는 단순히 커밋을 구축하고 공유합니다. 서버는 알 필요조차 없습니다.
그렇다면 어떻게 브랜치를 얻고 그들에게 커밋합니까?
- 전자 메일 패치에 git의 기능을 사용할 수 있습니다. 그러나 그것은 약간 우아하지 않으며 전자 메일 패치를 적용하는 방법에 대한 지식이 필요합니다.
- 공동 작업자가 ssh 할 수 있도록 자신의 컴퓨터에 계정을 만들 수 있습니다. 그러나 로컬 루트 액세스 권한이 없거나 상자에 대한 SSH 액세스 권한을 신뢰할 수 없습니다.
- repo를 썸 드라이브에 복제하여 앞뒤로 전달할 수 있습니다. 그러나 특히 동일한 로컬 네트워크에 있고 엄지 드라이브가 필요한 경우에는 다소 지루합니다.
다른 방법도 생각할 수 있습니다. 그러나 매우 쉬운 방법이 있습니다. 네트워크에서 서로를 볼 수 있다면 원격으로 사용할 수있는 일회용 git 서버를 시작하여 변경 사항을 복제, 가져 오기 및 끌어 당겨서 죽일 수 있습니다 그것으로 끝났다.
이를 가능하게하는 도구 git daemon
는 많은 옵션과 기능을 갖지만이 간단한 일회성 기능을 활성화하기 위해 "내가있는 리포지토리를 제공"하기 위해이 도구를 사용하는 방법은 별칭을 만드는 것입니다. 나는 그것을 부르고 싶다 git serve
. 운영:
git config --global alias.serve "daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"
git 별명은 작업 트리의 기본 디렉토리에서 실행되므로 별명을 사용하는 것이 실제로 중요합니다. 따라서 경로 '.git'은 저장소의 디렉토리 트리에 있더라도 항상 올바른 위치를 가리 킵니다.
다음 git serve
과 같이 새 것을 사용하십시오 .
- 를 실행하십시오
git serve
. "럼블 준비 완료"라고보고합니다. 힘내는 나쁜 것입니다.
- IP 주소를 찾으십시오. 192.168.1.123이라고 가정하십시오.
- "이봐 제인,이 커밋을 원산지로 만들 준비가되지 않았지만 실행할 때 커밋을 복제본으로 가져올 수 있습니다
git fetch git://192.168.1.123/
"라고 말합니다.
- 해당 리포지토리를 더 이상 제공하지 않으려면 ctrl + c를 누르십시오.
Jane에게 git clone git://192.168.1.123/ local-repo-name
아직 저장소 복제본이없는 경우 Jane에게 알릴 수도 있습니다 . 또는 git pull git://192.168.1.123/ branchname
한 번에 가져 오기 및 병합을 사용하여 기능 분기에서 함께 작업하는 경우 유용합니다.
그러나 인증이 없기 때문에 리포지토리에 비밀을 유지하는 경우 적대적인 네트워크에서는이 작업을 수행하지 않아야합니다. 그것은 존재를 알리지 않지만 포트 스캐너를 가진 사람은 그것을 찾아서 연결하고 레포를 복제 할 수 있습니다.
그러나 기본적으로 읽기 전용이므로 매우 위험하지 않습니다. git daemon
쓰기 액세스를 활성화하려는 경우 맨 페이지를주의 해서 읽으십시오 . 공동 작업자의 커밋을 얻으려는 경우 읽기 전용으로 남겨두고 공동 작업자 에게이 명령을 실행하도록 요청하는 것이 훨씬 안전합니다.
접선 적으로 관련됨 : 일회용 서버의 주제에서 HTTP를 통해 여러 정적 파일을 일시적으로 공유하려는 경우 : python -m SimpleHTTPServer