On Fri, 11 Oct 2013 03:53:58 -0700 (PDT) Akira Tsuchiya <[email protected]> wrote:
> I am new to Git and curious about the connectivity between a local PC > and a remote Git server. > I want to know whether it is possible to upload local files on a > Windows PC to a remote Linux Git repository > or look into the files on a remote repository. > In Subversion, you can do it using http, https, svn, and svn+ssh. > Which protocols does Git have? > And are they as useful as Subversion protocols? First off, you have to get under your skin that Git is a distributed version control system (DVCS), with the stress on the word "distributed". Understanding this well should make reasoning about remote Git repositories simpler. A Get repository kept on your PC is completely self-contained, and *does not* require any sort of server "to upload files" -- all commits are done locally, and "uploading" (called "pushing" in Git, and in most other DVCSes) of changes is a voluntary step which you might or might not do. You can push and fetch changes from *any number* of remote repositories, which is in stark contrast to centralized systems like Subversion. As to connectivity, noawdays Git could be set up to use these protocols: * SSH. This one is usually considered to be a de-facto standard protocol. All you have to do to make it work is to have both Git and SSH installed on the target server because there's no special "Git daemon" involved in this case: the local Git process just makes an SSH connection to the remote machine, tells SSH to spawn a special Git helper process there, and then talks with that process. You can either have a real system account on the target machine for each of your Git developers for accessing it it via SSH [1] or use a specialized front-end tool like gitolite or gitosis. * HTTP[S]. This requires a properly set up web server with CGI support enabled. Authentication is done using the web server's means. * "Native" Git protocol, used directly. This is handled by a special process, git-daemon, run either as a daemon or via an inetd superserver. It does not provide any sort of authentication, so typically this access is read-only. There's no way to inspect/fetch individual files in a remote repository using Git only -- this is not a task for Git. A typical way to inspect what a remote repository has is to fetch the required bits of history from it into the local repository and study them there. Inspecting could be done either by plain command-line Git tools, or its standard GUI history browser, gitk, or using one of numerous GUI front-ends available for different platforms. If you still need to view the history without downloading anything, you should use a web front-end tool, with gitweb being the most popular one and cgit being super-fast (runs git.kernel.org). Note that there exist "turn-key" solutions which provide "Git hosting" of various degreed of "completeness" -- that is, they typically include an administrative web front-end, repository browsers etc and also serve their repositories to Git clients. A few names for you to google: gitblit, gitorious (runs gitorious.org), gitlab, girocco (runs repo.or.cz). 1. https://groups.google.com/d/msg/git-users/l3QR6b9sAPs/koiAilcot_4J -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
