我无法在git存储库中看到文件

时间:2012-05-19 23:08:27

标签: git ssh

我通过ssh创建了一个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

3 个答案:

答案 0 :(得分:1)

将文件推送到远程存储库不会更新文件树(“索引”)。它更新了对象的存储。

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

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

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

答案 1 :(得分:1)

我认为,您必须在服务器上的存储库中添加文件和提交。为什么你不尝试裸存储库?

如果您需要通过远程推送提交,请尝试以下命令:

在服务器上创建存储库:

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:

git clone ssh://User@serverip: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/repo.git
git merge someUser   ##  merge repo by user commit

答案 2 :(得分: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