Git serve: I would like it that simple

前端 未结 8 518
南方客
南方客 2020-12-02 03:52

I want to know how to simply publish over http = much like Mercurial\'s hg serve! On the Windows/work box do this:

git serve 

and then on t

相关标签:
8条回答
  • 2020-12-02 04:06

    Currently using two aliases - serve and hub. Serve for read-only share and hub for read/write share:

    [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
    

    Also, there is more detailed tutorial about sharing via git daemon: http://l.rw.rw/git-daemon .

    0 讨论(0)
  • 2020-12-02 04:12

    Navigate into your project and start git-daemon with the following switches:

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

    This tells git-daemon to serve up all projects inside the current directory (which I assume is the project directory containing the .git/ folder). It also tells it to re-use the same address if you shut it down and start it back up too fast.

    You can put this into a batch script with an easy to remember name like "gitserve", so you don't need to type it all out again. As suggested in some of the comments, in recent versions of Git you can add an alias to the Git config:

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

    Once that's done on the server (your Windows box), you can do:

    git serve
    

    git-daemon uses the git:// protocol for transport, so on the client (your Linux box), you would need to do:

    git clone git://123.456.789.111/ project
    
    0 讨论(0)
  • 2020-12-02 04:14

    Git 2.21 (Feb. 2019) allows you to combine python and git instaweb:

    See commit 2eb14bb (28 Jan 2019) by Arti Zirk (artizirk).
    (Merged by Junio C Hamano -- gitster -- in commit abf39e3, 05 Feb 2019)

    git-instaweb: add Python builtin http.server support

    With this patch it is possible to launch git-instaweb by using Python http.server CGI handler via -d python option.

    git-instaweb generates a small wrapper around the http.server (in GIT_DIR/gitweb/) that address a limitation of the CGI handler where CGI scripts have to be in a cgi-bin subdirectory and directory index can't be easily changed. To keep the implementation small, gitweb is running on url /cgi-bin/gitweb.cgi and an automatic redirection is done when opening /.

    The generated wrapper is compatible with both Python 2 and 3.

    Python is by default installed on most modern Linux distributions which enables running git instaweb -d python without needing anything else.

    0 讨论(0)
  • 2020-12-02 04:16

    Here is an alternative way. You will need python installed.

    • run git update-server-info
    • go to the .git directory
    • run python -mSimpleHTTPServer

    (just create an alias in your gitconfig)

    Now you can pull the repo with git pull http://HOST_NAME:8000/

    PS: when usingthe git daemon solution you can set --base-path=.git so the url is git://HOST/

    0 讨论(0)
  • 2020-12-02 04:22

    Rather than write your own batch script, use gitjour. It knows how to start git daemon correctly and will broadcast the clone URL via mDNS so you can do gitjour show on the linux box and copy and paste.

    Also a good article with an overview of gitjour and a number of other similar tools from Dr. Nic, What is *jour and why they are killer apps for RailsCamp08.

    0 讨论(0)
  • 2020-12-02 04:23

    Add following lines in .git/config

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

    then execute

    git instaweb
    
    0 讨论(0)
提交回复
热议问题