我在我的覆盆子pi上安装了gitea(如果有人不知道它,它是一个开源的gogs叉子)。我在用户pi和用户git下尝试了它。在用户pi中,gitea安装在/home/pi/gitea
中,而在git中,它安装在/home/git
中。在这两种情况下,存储库目录都在安装根目录中。
我用webui创建了一个新的存储库,我在两次安装时尝试了2个遥控器。
rpilocal = pi@192.168.1.125:/home/pi/gitea/repositories/uname/repositoryname
rpilocal2 = pi@192.168.1.125:uname/repositoryname
rpigitlocal = git@192.168.1.125:/home/pi/gitea/repositories/uname/repositoryname
rpigitlocal2 = git@192.168.1.125:uname/repositoryname/repositoryname
当我尝试按rpilocal2
并rpigitlocal2
时,我收到以下错误消息:
git push rpigitlocal2 master
git@192.168.1.125's password:
fatal: 'feralheart/leltar.git' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
当我尝试推送rpilocal
和rpigitlocal
时推送成功,但是在网络界面中,我仍然得到了“创建一个新的存储库或使用CLI推送存在”。
什么事?
答案 0 :(得分:0)
我在VPS ♣ 上进行了gitea
的测试设置,遇到了可能出现同样问题的问题。经过各种测试后,我发现了一个适合我的解决方法。万一它可以帮助你 ......
就我而言,要求gitea
创建一个带有初始“自述提交”的新git
存储库工作正常。我可以clone
,添加新提交和push
。新提交出现在gitea
Web UI中的第一个提交之后。
如果我要求gitea
创建没有初始提交 † 的存储库,gitea
的网页用户界面就无法反映提交历史记录,即
user@client:~/projects$ mkdir myCode
user@client:~/projects$ cd myCode
user@client:~/projects/myCode$ git init
Initialized empty Git repository in /home/user/projects/myCode/.git/
user@client:~/projects/myCode$ echo "testing 1 2 3" > file.txt
user@client:~/projects/myCode$ git add file.txt
user@client:~/projects/myCode$ git commit -m0
[master (root-commit) f9d8e7] 0
1 file changed, 1 insertion(+)
create mode 100644 file.txt
user@client:~/projects/myCode$ git remote add origin git@server:gitea_repos/owner/myCode.git
user@client:~/projects/myCode$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 210 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@server:gitea_repos/owner/myCode.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
user@client:~/projects/myCode$
git
将报告成功,git@server:gitea_repos/owner/myCode.git
将继续作为远程功能运行,但gitea
Web UI将继续显示“空存储库”帮助页面而不是存储库浏览器< SUP>的‡强>
因为新的提交在非空的存储库中注册,it occurred to me gitea
如果git
用完整提交覆盖了新项目的存根提交历史记录,gitea
可能会注意到更改另一个项目的历史 ↯ 。要试试这个,请按照:
3个简单步骤:
New Repository
网页用户界面中,创建一个新的存储库。在Initialize this repository with selected files and template
创建页面上,请务必选中Create Repository
旁边的复选框,然后再点击remote
。在您的工作站上,将此新存根作为git
添加到具有所需提交历史记录的本地user@client:~$ cd projects/myCode
user@client:~/projects/myCode$ git remote add gitea git@server:gitea_repos/owner/myCode.git
存储库。
gitea
使用所需材料覆盖user@client:~/projects/myCode$ git push -fu gitea master
Counting objects: 97, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (95/95), done.
Writing objects: 100% (97/97), 55.53 KiB | 0 bytes/s, done.
Total 97 (delta 45), reused 0 (delta 0)
To git@server:gitea_repos/owner/myCode.git
+ a1b2c3...d4e5f6 master -> master (forced update)
Branch master set up to track remote branch master from gitea.
user@client:~/projects/myCode$
生成的存根提交。
-f
请注意,对于第3步:
git
用于强制:这使-u
能够执行(否则禁止)“提交树覆盖”master
用于 set-upstream - 这会将本地分支gitea/master
通过远程跟踪分支gitea
连接到由{{1管理的主分支}} 这种策略是一种黑客攻击,我怀疑这会留下一些东西。例如。您可能希望将分支和标记推送到gitea
。 (我的测试并没有把我带到目前为止。)对于分支机构考虑--all
,对于代码考虑--tags
:
user@client:~/projects/myCode$ git push gitea --all
user@client:~/projects/myCode$ git push gitea --tags
YMMV,祝你好运!
<强>脚注:强>
♣ - 我正与gitea-1.4.2-linux-amd64
托管的Ubuntu 16.04.2 LTS
上的virmach.com
合作。
† - git
在引用没有提交的存储库时使用术语“空存储库”,但在gitea
用于访问{{}的内部API中1}}功能(有时候,通过git
社区成员),使用术语“裸存储库” ☥ 。
☥ - gitea
在引用存储库而非嵌入(作为目录git
)时使用术语“裸存储库” “工作树”的根目录。裸存储库经常用作协作的规范副本,并存储在服务器上(并可从服务器访问)。例如。 'github'服务。有时,这些目录以模式./.git
‡ - 我尝试了一些设置变体,在project_name.git
频道irc
上询问,并在代码中进行了搜索。我可以得出的结论是,#gitea
→钩子→git
链(在空库和非空库之间不同)之间的一些差异是我VPS上的这个问题的原因。
↯ - 在此之前,我想过在新的存根上重播所需项目的历史记录,但这个gitea
操作是一个绝望的黑客攻击:所有提交都获得新的{{1校验和,实际上,所有开发人员都必须再次克隆,就好像在新的存储库上工作一样。