힘내 어 봉사 : 나는 그것을 간단하게하고 싶습니다


139

Mercurial 의 hg 서브 와 같이 http = 단순히 게시하는 방법을 알고 싶습니다 ! Windows / 작업 상자에서 다음을 수행하십시오.

git serve 

그런 다음 Linux 상자에서 간단하게 이동하십시오.

git clone http://project project 

끝마친.


svn 저장소의 git-svn 복제본을 복제하는 것이 까다 롭다는 것을 알고 있습니까? subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone
— bendin

왜 리눅스 노트북 광고에 svn을 설치하여 프로젝트 저장소에서 직접 체크 아웃하지 않습니까? 힘내가 새로운 핫함 일지 모르지만,이 특별한 경우에 인생을 불필요하게 복잡하게 만드는 것처럼 보입니다.
— bendin

내가 환경을 설정하는 메신저 지금 당신이 이야기
— 기뻐서 벤딘

1
첫째 : 내 노트북은이 VPN에 허용되지 않으므로 svn에 직접 액세스 할 수 없습니다. 둘째 : 내 저장소에 커밋하고 싶습니다 .git 사용의 요점은 로컬 커밋, 분기 및 고통없이 병합을 수행 할 수 있다는 것입니다. svn을 사용하면 오히려 경련이 발생합니다.
— Setori

당신은 파이썬 설치 한 경우, 간단한은 git instaweb -d python다음을 참조하십시오 (힘내 2.21, 2019 2월로) 계속하지 수 내 대답은 아래
— VonC

답변:


197

다음 스위치로 프로젝트를 탐색하고 git-daemon을 시작하십시오.

cd project
git daemon --reuseaddr --base-path=. --export-all --verbose

이것은 git-daemon에게 현재 디렉토리 (.git / 폴더를 포함하는 프로젝트 디렉토리라고 가정) 내의 모든 프로젝트를 제공하도록 지시합니다. 또한 종료하고 너무 빨리 백업하면 동일한 주소를 다시 사용하도록 지시합니다.

이것을 "gitserve"와 같이 기억하기 쉬운 이름으로 배치 스크립트에 넣을 수 있으므로 다시 입력 할 필요가 없습니다. 일부 의견에서 제안했듯이 최신 버전의 Git 에서는 Git 구성에 별칭을 추가 할 수 있습니다 .

[alias]
    serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git

서버 (Windows 상자)에서 완료되면 다음을 수행 할 수 있습니다.

git serve

git-daemon은 전송을 위해 git : // 프로토콜을 사용하므로 클라이언트 (Linux 상자)에서 다음을 수행해야합니다.

git clone git://123.456.789.111/ project

3
여기에 설명 된대로 당신 .gitconfig 파일에 별칭으로 명령을 추가 할 수 있습니다 git.or.cz/gitwiki/Aliases#Serverepoonthespot
— RFelix


8
git daemon다른 자식 클라이언트에 의한 원격 액세스를 허용 하지만 hg serve제공 하는 웹 인터페이스가 부족하다는 점에 유의해야 합니다.
— Rob Kennedy

4
:처럼 .gitrc에 별칭을 제공 할serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
— dlamblin

1
@ 이온, URL이 변경된 것 같고 이제는 git.wiki.kernel.org/articles/a/l/i/Aliases.html
— Christophe Muller


13

현재 서브와 허브라는 두 개의 별칭을 사용하고 있습니다. 읽기 전용 공유 및 읽기 / 쓰기 공유 허브 제공 :

[alias]
  serve = !git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose
  hub = !git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

또한, 공유에 대한 자세한 튜토리얼이를 통해 자식 데몬 : http://l.rw.rw/git-daemon .


12

웹 브라우저로 리포지토리를 노출하려는 경우

git-instaweb

$ git instaweb -d apache2 --start
$ lynx localhost:1234

그것은 말한다lighttpd not found. Install lighttpd or use --httpd to specify another httpd daemon.
— Rakib

4
@syedrakib lighttpd 또는 apache2 또는 다른 것을 설치해야합니다. git instaweb -d webrickwebrick에는 OS X에 사전 설치된 Ruby가 포함되어 있기 때문에 개인적 으로 OS X에서 사용합니다 .
— Martijn Heemels

6
이 도구는 Windows와 호환되지 않는 것 같습니다. 포스터가 Windows 도구를 요구할 때이 답변에 중요한 요소입니다.
— Robert MacLean

9

다른 방법이 있습니다. 파이썬이 설치되어 있어야합니다.

  • 운영 git update-server-info
  • .git디렉토리 로 이동
  • 운영 python -mSimpleHTTPServer

(gitconfig에 별명을 만드십시오)

이제 레포를 당겨서 git pull http://HOST_NAME:8000/

추신 : git 데몬 솔루션을 사용할 --base-path=.git때 URL이되도록 설정할 수 있습니다git://HOST/


0

git-webui는 웹 기반 사용자 인터페이스와 다른 컴퓨터에서 복제 / 풀링하는 기능을 제공하는 git 확장입니다.

https://github.com/alberthier/git-webui

$ cd my_git_repo
$ git webui

다른 사람들은

$ git clone http://<ip-of-your-computer>:8000/ repoclone

또는

$ git pull http://<ip-of-your-computer>:8000/

방금 맹목적으로 시도했습니다. git clone을 사용할 수 있지만 webgui에 액세스 할 수 없습니다. 브라우저가 서버의 응답을 기다리는 것 같습니다.
— sree mar

0

.git / config에 다음 줄 추가

[instaweb]
               local = true
               httpd = webrick
               port = 4231

그런 다음 실행

git instaweb

0

Git 2.21 (2019 년 2 월)을 사용하면 파이썬과 git instaweb다음 을 결합 할 수 있습니다 .

참조 2eb14bb 커밋 에 의해 (2019 1월 28일) 아르 티 Zirk을 ( artizirk) .
(의해 병합 - Junio C 하마노 gitster- 에 abf39e3 커밋 2019 05 2 월)

git-instaweb: Python 내장 http.server지원 추가

이 패치를 사용하면 옵션을 통해 git-instawebPython http.serverCGI 핸들러를 사용하여 시작할 수 -d python있습니다.

git-instawebCGI 스크립트가 서브 디렉토리 에 있어야 하고 디렉토리 색인을 쉽게 변경할 수없는 CGI 핸들러의 한계를 해결하는 http.server(in GIT_DIR/gitweb/) 주위에 작은 랩퍼를 생성합니다 cgi-bin. 구현을 작게 유지하려면 gitweburl에서 실행 중이며을 /cgi-bin/gitweb.cgi열 때 자동 리디렉션이 수행됩니다 /.

생성 된 래퍼는 Python 2 및 3과 호환됩니다.

Python은 기본적으로 최신 Linux 배포판에 기본적으로 설치되어 git instaweb -d python다른 작업없이 실행할 수 있습니다.

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