atom feed4 messages in org.kernel.vger.gitShort rant about git usability - make...
FromSent OnAttachments
Richard W.M. JonesJan 22, 2009 2:01 am 
Mikael MagnussonJan 22, 2009 3:00 am 
Sverre RabbelierJan 22, 2009 5:00 am 
Johannes SchindelinJan 22, 2009 5:50 am 
Subject:Short rant about git usability - make 'git clone' work on an empty remote repository
From:Richard W.M. Jones (rjo@redhat.com)
Date:Jan 22, 2009 2:01:52 am
List:org.kernel.vger.git

This is a rant, those offended by rants should stop reading now.

When I want to check out a remote repository, I do:

git clone URL...

Except when the repository is empty, when for no explicable reason this familiar command doesn't work.

$ git clone
git+ssh://rw@git.ocamlcore.org/gitroot/ocaml-autoconf/ocaml-autoconf.git Initialized empty Git repository in /home/rjones/d/ocaml-autoconf/.git/ fatal: no matching remote head

$ git init ocaml-autoconf usage: git init [-q | --quiet] [--bare] [--template=<template-directory>]
[--shared[=<permissions>]] $ mkdir ocaml-autoconf $ cd ocaml-autoconf $ git init Initialized empty Git repository in /home/rjones/d/ocaml-autoconf/.git/ $ ls $ ls -a . .. .git

Following advice on a website ...

$ git-remote origin
git+ssh://rw@git.ocamlcore.org/gitroot/ocaml-autoconf/ocaml-autoconf.git error: Unknown subcommand: origin usage: git remote or: git remote add <name> <url> or: git remote rm <name> or: git remote show <name> or: git remote prune <name> or: git remote update [group]

-v, --verbose be verbose

$ git remote add origin
git+ssh://rw@git.ocamlcore.org/gitroot/ocaml-autoconf/ocaml-autoconf.git

$ git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track) $ git branch $ git checkout fatal: You are on a branch yet to be born $ git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track) $ echo test > README $ git commit -a # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README nothing added to commit but untracked files present (use "git add" to track) $ git add README $ git commit -a Created initial commit 2c9a63a: Create repository. 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 README

$ git push No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. fatal: The remote end hung up unexpectedly error: failed to push some refs to
'git+ssh://rw@git.ocamlcore.org/gitroot/ocaml-autoconf/ocaml-autoconf.git' $ git push master fatal: 'master': unable to chdir or not a git archive fatal: The remote end hung up unexpectedly $ git branch master fatal: A branch named 'master' already exists. $ git status # On branch master nothing to commit (working directory clean) $ git push No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. fatal: The remote end hung up unexpectedly error: failed to push some refs to
'git+ssh://rw@git.ocamlcore.org/gitroot/ocaml-autoconf/ocaml-autoconf.git' $ man git-push $ git pull You asked me to pull without telling me which branch you want to merge with, and 'branch.master.merge' in your configuration file does not tell me either. Please name which branch you want to merge on the command line and try again (e.g. 'git pull <repository> <refspec>'). See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to configure the following variables in your configuration file:

branch.master.remote = <nickname> branch.master.merge = <remote-ref> remote.<nickname>.url = <url> remote.<nickname>.fetch = <refspec>

See git-config(1) for details.

Arrggghhhh, just MAKE GIT CLONE WORK!!!

Rich.