2012-05-19 18 views
1

我通过ssh创建了一个git仓库。它的工作原理,但我无法看到目录中的文件。我看不到git仓库中的文件

远程(SSH):

mkdir test.com 
cd test.com 
git init 

client(git bash) 
cd /apache/htdocs 
git clone git://myserverip/test.com 
cd test.com 
git add --all . 
git commit -a -m "first" 
git push origin master 

回答

1

我找到了解决办法

mkdir test.com 
cd test.com 
git init 
cd .git 
cd hooks 
vi post-receive 
chmod +x post-receive 

后收到

#!/bin/sh 
cd .. 
env -i git reset --hard 
1

推动文件到远程仓库不更新文件树(以下简称 “指数”)。它更新对象的存储。

要更新树以反映存储的对象,您必须在该远程存储库中执行git reset --hard以将其更新为新的HEAD

这是一件坏事,所以远程仓库通常设置为“裸”:git托管的特殊仓库格式,它没有工作树(和其他区别:例如没有.git目录:配置文件更方便地存储在其根目录中)。

为您的上游使用裸仓库:git init --bare

+0

而且......他似乎是克隆一个空仓库,将没有什么不可以,并推动它。 – larsks

+0

我会尝试,但我认为,这是可能的,而不是--bare。因为我有3个仓库,它也可以通过git init(without --bare)命令创建。感谢您的回复 –

+0

没有'--bare'是可能的,是的,但有一些不便之处。 – Kaz

1

我想,你必须添加文件并在服务器上的仓库提交。为什么你不试试裸仓库?

,如果你还需要通过遥控推提交试试这个命令:用户推后

git clone ssh://[email protected]:sshport/usr/local/git/repo.git myrepo 
cd myrepo 
git branch someUser # create new branch 
vim README ## some change on the file 
git add README 
git commit -a -m "some change by someUser" ## user commit changes 
git push origin someUser ## push commit to server 

:在客户端上

cd /usr/local/git/ ## or your own repo destination 
mkdir repo.git 
cd repo.git 
git init 
touch README 
git add . 
git commit -a -m "start my repository" 

如Ubuntu:

在服务器上创建存储库change的系统管理员必须是合并提交,简单的方法是:

cd /usr/local/git/repo.git 
git merge someUser ## merge repo by user commit 
相关问题