繁体   English   中英

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

[英]i can't see files in git repository

我通过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

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

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

在服务器上创建存储库:

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

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

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

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

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

我找到了解决方案

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM