Does git need to be present on a server to use it?

我怕爱的太早我们不能终老 提交于 2019-12-30 06:32:08

问题


When I started with git, one of the most prominent benefits my colleagues told me, was that git didn't need to be present on a server opposed to svn.

But is this really true? In another thread I read that at least a git-upload-pack or git-receive-pack would be necessary.

On the other hand, I can safely have a git repository on an usb stick.

So, does the server need to have any software installed except to ssh or not?


回答1:


No, you're correct when you're saying you can serve a git repository without have git installed on your server. This is because everything that is needed to serve a git repository, is "stored" in the .git directory.

But, to communicate with a server (e.g. do a clone, push, etc...), based on your repository address (refspec) a certain transport will be used. And if you're using the ssh or git transport, the server side needs to have git installed as well. Because, like you said, it 'packs' all data that is exchanged in a more efficient format.

You could circumvent this by mounting remote server on your filesystem, and use the 'file' transport. Or you could upload your own 'alternatives' for git, and use that instead:

git clone -u /home/you/bin/git-upload-pack you@machine:code

(from: git-upload-pack: command not found, how to fix this correctly )




回答2:


Every git respository acts like a server.

Once you do git clone it becomes a fully working repository that can be added as a remote in any other computer.



来源:https://stackoverflow.com/questions/7317280/does-git-need-to-be-present-on-a-server-to-use-it

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!