Skip to contentSkip to conversation

How newbies create remote repositories

DISCUSSION Bernie Innocenti 1 participant 1 message Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

Here's another usability problem report from my friends who are learning their way to Git from previous experience with Subversion and Mercurial.

Three of them confessed they couldn't find a simple recipe to setup remote repositories, after looking in obvious places such as the git-push manpage.

Each one could figure it out independently after some time, coming up with a variety of creative strategies:

Strategy 1:
client$ ssh server
server$ mkdir foo.git
server$ cd foo.git
server$ git init --bare --shared
server$ exit
client$ git push --mirror server:foo.git

Problem: Does not setup the remote for you.
Solution: Would be nice if "git push <URL>" could give this tip

Problem: Requires a full unrestricted shell on the server
Solution: If "git init <dir>" was supported, one could do
ssh server git init --bare --shared foo.git

Strategy 2:
client$ ssh server
server$ mkdir foo.git
server$ cd foo.git
server$ git init --bare --shared
server$ exit
client$ git clone server:foo.git .
client$ git add .
client$ git commit
client$ git push

Problem: only works if you had no local repository yet

Strategy 3:
client$ scp -r .git server:foo.git
client$ cd ..
client$ rm -r foo
client$ git clone server:foo.git

Problem: the user checks out the repository from scratch
to properly add the remote
Solution: "git pull" might suggest to use "git remote".

A simple "git remote create" or "git remote new" along with a reference to it in the manpage of "git push" might have helped these users.

Signature · 2 lines
   // Bernie Innocenti - http://www.codewiz.org/
 \X/  Sugar Labs       - http://www.sugarlabs.org/