From: J. Bakshi <hidden> Date: 2016-06-15 22:51:35
Hello list,
I have set the git bare repo with detached worktree to update website with post-receive hook. In short what I have done
[1] create the bare git with hook
-------------------------------------
git init --bare /home/git/web.git
cat > home/git/web.git/hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/opt/web git checkout -f
chmod +x /home/git/web.git/hooks/post-receive
chown -rvf wwwrun:www /home/git/web.git
[2] create the directory and set permission
--------------------------------------------
mkdir /opt/web
chown -Rvf wwwrun:www /opt/web
[3] cloning at my clinet and push
-----------------------------------
git clone http://192.168.1.1/git/web.git
Cloning into web...
Username:
Password:
warning: You appear to have cloned an empty repository.
touch A
git add A
git commit -m "add A"
[master (root-commit) 7662edd] add A
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 A
git push
Username:
Password:
Everything up-to-date
Why reports [Everything up-to-date] rather than modify the remote git ?
Confused :-(
From: Carlos Martín Nieto <hidden> Date: 2016-06-15 22:51:35
On Thu, 2011-07-14 at 18:10 +0530, J. Bakshi wrote:
[...] snip snip snip
warning: You appear to have cloned an empty repository.
touch A
git add A
git commit -m "add A"
[master (root-commit) 7662edd] add A
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 A
git push
Username:
Password:
Everything up-to-date
Why reports [Everything up-to-date] rather than modify the remote git ?
That's because your remote repository has no branches and per default
git-push will only push matching branches; as no branches match, there
is nothing to do. This is what "warning: You appear to have cloned an
empty repository." is trying to tell you (the message could certainly be
made much more friendly). Your master branch in this case doesn't exist
in the server, so you have to tell git to push it explicitly.
git push origin master
will do the trick.
Cheers,
cmn
From: J. Bakshi <hidden> Date: 2016-06-15 22:51:35
On Thu, 14 Jul 2011 14:49:27 +0200
Carlos Martín Nieto [off-list ref] wrote:
On Thu, 2011-07-14 at 18:10 +0530, J. Bakshi wrote:
[...] snip snip snip
quoted
warning: You appear to have cloned an empty repository.
touch A
git add A
git commit -m "add A"
[master (root-commit) 7662edd] add A
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 A
git push
Username:
Password:
Everything up-to-date
Why reports [Everything up-to-date] rather than modify the remote git ?
That's because your remote repository has no branches and per default
git-push will only push matching branches; as no branches match, there
is nothing to do. This is what "warning: You appear to have cloned an
empty repository." is trying to tell you (the message could certainly be
made much more friendly). Your master branch in this case doesn't exist
in the server, so you have to tell git to push it explicitly.
git push origin master
will do the trick.
GRAET !!
Working like a charm and the hook is also working fine. Can we make the
empty master branch at the server, so that client can continue with plain "git push" ?
Thanks
From: J. Bakshi <hidden> Date: 2016-06-15 22:51:35
On Thu, 14 Jul 2011 14:49:27 +0200
Carlos Martín Nieto [off-list ref] wrote:
On Thu, 2011-07-14 at 18:10 +0530, J. Bakshi wrote:
[...] snip snip snip
quoted
warning: You appear to have cloned an empty repository.
touch A
git add A
git commit -m "add A"
[master (root-commit) 7662edd] add A
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 A
git push
Username:
Password:
Everything up-to-date
Why reports [Everything up-to-date] rather than modify the remote git ?
That's because your remote repository has no branches and per default
git-push will only push matching branches; as no branches match, there
is nothing to do. This is what "warning: You appear to have cloned an
empty repository." is trying to tell you (the message could certainly be
made much more friendly). Your master branch in this case doesn't exist
in the server, so you have to tell git to push it explicitly.
git push origin master
will do the trick.
Great !!
Working like a charm and the hook is also working fine. Can we make the
empty master branch at the server, so that client can continue with plain "git push" ?
Thanks
From: Carlos Martín Nieto <hidden> Date: 2016-06-15 22:51:36
On Fri, 2011-07-15 at 10:56 +0530, J. Bakshi wrote:
[snip]
Working like a charm and the hook is also working fine. Can we make the
empty master branch at the server, so that client can continue with
plain "git push" ?
You may have figured this out already, but once you push, that branch
exists, so under those same rules, pushing to master will work from
there onwards.
If you were asking whether you can create an empty branch on the remote
you it works "automatically", then the answer is no, because a branch
doesn't exist[0] before its first commit. A branch is a reference to a
commit (which is, logically, considered the tip of that branch). Thus an
empty branch cannot exist before any commits are made to that branch.
[0] For the purposes of network transfer. The way to create the first
commit ever in a repo (or in an orphan branch) is to have HEAD point to
an as-of-yet nonexistent branch; but this won't help you in this case.
Cheers,
cmn